微機(jī)原理的答案_第1頁
微機(jī)原理的答案_第2頁
微機(jī)原理的答案_第3頁
微機(jī)原理的答案_第4頁
微機(jī)原理的答案_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第二章 8086/8088 16位微處理器習(xí)題解答1 試說明8086/8088CPU中有哪些寄存器?各有哪些用途?答:寄存器組有(1)數(shù)據(jù)寄存器,含AX、BX、CX、DX四個(gè)通用寄存器,用來暫時(shí)存放計(jì)算過程中所遇到的操作數(shù),結(jié)果和其它信息。(2)指針及變址寄存器,含SP、BP、SI、DI四個(gè)十六位寄存器,它們可以像寄存器一樣在運(yùn)算過程中存放操作數(shù)只能以字為單位使用。還用來在段內(nèi)尋址時(shí)提供偏移地址。(3)段寄存器,含CS、DS、SS、ES,用來專門存放段地址。(4)控制寄存器,包括IP和PSW兩個(gè)16為寄存器。IP是指令指針寄存器,用來存放代碼段中的偏移地址。PSW為程序狀態(tài)字寄存器,由條件碼標(biāo)

2、志和控制標(biāo)志構(gòu)成。條件碼標(biāo)志用來紀(jì)錄程序運(yùn)行結(jié)果的狀態(tài)信息。包括OF、SF、ZF、CF、AF、PF??刂茦?biāo)志位有三個(gè)寄存器DF、IF、TF組成。2 是說明8086/8088CPU中標(biāo)志位寄存器中各標(biāo)志位的意義?答:OF溢出標(biāo)志,在運(yùn)算過程中,如操作數(shù)超出了機(jī)器能表示的范圍則置1,否則置0。SF符號(hào)標(biāo)志,運(yùn)算結(jié)果為負(fù)時(shí)置1,否則置0。ZF零標(biāo)志,運(yùn)算結(jié)果為0置1,否則置0 。CF進(jìn)位標(biāo)志,記錄運(yùn)算是最高有效位產(chǎn)生的進(jìn)位。AF輔助進(jìn)位標(biāo)志,記錄第三位的進(jìn)位情況。PF奇偶標(biāo)志位,用來為機(jī)器中傳送信息時(shí)可能產(chǎn)生的出錯(cuò)情況提供檢驗(yàn)條件,當(dāng)結(jié)果操作數(shù)中的1的個(gè)數(shù)為偶時(shí)置1。DF方向標(biāo)志位,在串處理指令中控

3、制處理信息的方向。當(dāng)DF=1時(shí),每次操作后變址寄存器減量,這樣就使串處理從高地址向低地址方向處理。IF中斷標(biāo)志,當(dāng)IF=1時(shí),允許中斷,否則間斷中斷。TF陷阱標(biāo)志,用于單步操作方式,當(dāng)TF為1時(shí),每條指令執(zhí)行完后產(chǎn)生陷阱,由系統(tǒng)控制計(jì)算機(jī)。當(dāng)TF為0時(shí),CPU正常工作不產(chǎn)生陷阱。3哪些操作只能隱含使用某個(gè)段寄存器,而不能用其它段寄存器代替?哪些操作出隱含使用某個(gè)段寄存器外,還可以使用其它段寄存器?答:計(jì)算程序的地址隱含使用CS,正在執(zhí)行的程序隱含使用SS,而數(shù)據(jù)的地址隱含使用ES和DS。48086/8088系列違紀(jì)在存儲(chǔ)器中尋找存儲(chǔ)單元時(shí),邏輯地址由哪兩個(gè)部分組成的?答:由段地址和偏移地址兩部

4、分構(gòu)成。5設(shè)IBM PC微機(jī)內(nèi)存中某個(gè)單元的物理地址是12345H,試完成下列不同的邏輯地址表示:(1) 1234H:_H(2) _H:0345H答:(1)1234H:05H (2) 1200H:0345H6假設(shè)某程序執(zhí)行過程中,(SS)=0950H,(SP)=64H,試問該用戶程序的堆棧底部物理地址是多少?答:(SS)*10H+(SP)=09564H7設(shè)堆棧段寄存器(SS)=0E4BH,程序中設(shè)堆棧長度為200H個(gè)字節(jié)。試計(jì)算出堆棧底部字單元物理地址,堆棧指針SP初始值(即堆棧中沒有數(shù)據(jù)時(shí))和SP初始值指向的物理地址。答:物理地址為:3E4B0H, SP的初始值為200H,指向的物理地址為:

5、3E6B1H.。8設(shè)某用戶程序(SS)=0925H,SP=30H,(AX)=1234H,(DX)=5678H,問堆棧的地址范圍是多少?如現(xiàn)有兩條進(jìn)展指令: PUSH AXPUSH DS試問兩指令執(zhí)行后,(SP)=?答:尋址范圍:09250H09280H,SP減4為2CH。98086CPU與 8088CPU由哪些相同之處?又有哪些區(qū)別?答:他們內(nèi)結(jié)構(gòu)基本相同,不同之處僅在于8088有8條外部數(shù)據(jù)總線,因此為準(zhǔn)16位。8088有16條外部數(shù)據(jù)總線,兩個(gè)CPU的軟件完全兼容,程序的編制也完全相同。108086CPU從功能上分為幾部分?各部分由什么組成?各部分的功能是什么?答:8086CPU從功能上分

6、外兩大部分,一是執(zhí)行部件(EU),二是總線接口部件(BIU)。執(zhí)行部件是由以下四部分組成:(1)4個(gè)通用寄存器AX,BX,CX,DX。(2)4個(gè)專用寄存器BP,SP,XI,DI。(3)標(biāo)志寄存器FR。(4)算術(shù)邏輯部件ALU。功能是負(fù)責(zé)執(zhí)行所以的指令,向總線接口部件(BIU)提供指令執(zhí)行的結(jié)果數(shù)據(jù)和地址,并對(duì)通用寄存器和標(biāo)志寄存器進(jìn)行管理。 總線接口部件(BIU)由以下部件組成:(1)四個(gè)段寄存器,代碼段寄存器,數(shù)據(jù)段寄存器,附加段寄存器,堆棧段寄存器。(2)指令指針寄存器。(3)地址加法器。(4)指令領(lǐng)隊(duì)列。功能:執(zhí)行外部總線周期,負(fù)責(zé)存儲(chǔ)器與I/O端口傳送數(shù)據(jù)。也就是負(fù)責(zé)CPU與存儲(chǔ)器和外

7、設(shè)之間的信息交換。128086系統(tǒng)中的物理地址是如何的得到的?假如CS=2000H,IP=2100H,其物理地址是多少?答:8086系統(tǒng)的物理地址是將段地址乘10H,加上偏移地址。 2000H*10H+2100H=22100H (物理地址)13 什么叫總線周期?一個(gè)總線周期包括多少時(shí)鐘周期,什么情況下要插入TW等待周期?插入多少個(gè)TW取決于什么因素?答:CPU把總線接口部件BIU完成一次訪問存儲(chǔ)器或外設(shè)操作所需要的時(shí)間稱為一個(gè)總線周期,它包括了四個(gè)時(shí)鐘周期。 當(dāng)訪問存儲(chǔ)器或外設(shè)時(shí),存儲(chǔ)器或外設(shè)不能及時(shí)配合CPU傳輸數(shù)據(jù)時(shí),存儲(chǔ)器或外設(shè)通過“READY”信號(hào)在T3之前向CPU發(fā)出一個(gè)“數(shù)據(jù)未準(zhǔn)備

8、好”信號(hào),CPU會(huì)在T3之前插入一個(gè)或多個(gè)等待時(shí)間周期。當(dāng)存儲(chǔ)器或外設(shè)準(zhǔn)備好數(shù)據(jù),通過“READY”發(fā)“準(zhǔn)備好”信號(hào),CPU接受此信號(hào)后,會(huì)自動(dòng)脫離TW狀態(tài)進(jìn)入T4狀態(tài)。因此,插入多少個(gè)TW由“READY”信號(hào)決定。14 什么是最大模式?什么是最小模式?用什么方法將8086/8088置于最大模式和最小模式?答:最小模式,即系統(tǒng)中只有一個(gè)微處理器,所有的總線控制信號(hào)都直接由8086/8088,因此,系統(tǒng)總線控制電路被減到最小。 最大模式,即系統(tǒng)里包括兩個(gè)或多個(gè)微處理器,主處理器就是8086/8088,其它均為協(xié)助主處理器工作的協(xié)處理器。它主要用于中等規(guī)模或大型的8086/8088系統(tǒng)中。 將80

9、86/8088的第33腳接地時(shí),系統(tǒng)處于最大模式,接5V時(shí),為最小模式15 什么是地址鎖存器?8086/8088系統(tǒng)中為什么要用地址鎖存器?鎖存的是什么信息? 答:地址鎖存器就是一個(gè)暫存器,它根據(jù)控制信號(hào)的狀態(tài),將總線上地址代碼暫存起來。8086/8088數(shù)據(jù)和地址總線采用分時(shí)復(fù)用操作方法,即用同一總線既傳輸數(shù)據(jù)又傳輸?shù)刂贰.?dāng)微處理器與存儲(chǔ)器交換信號(hào)時(shí),首先由CPU發(fā)出存儲(chǔ)器地址,同時(shí)發(fā)出允許鎖存信號(hào)ALE給鎖存器,當(dāng)鎖存器接到該信號(hào)后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸數(shù)據(jù)。16 8086/8088系統(tǒng)中的8286是什么器件?起什么作用? 答:8286為總線驅(qū)動(dòng)器(收發(fā)器,雙向

10、數(shù)據(jù)緩沖器),當(dāng)一個(gè)系統(tǒng)中所含外設(shè)接口較多時(shí),用來增強(qiáng)數(shù)據(jù)總線的驅(qū)動(dòng)能力。17 8086/8088系統(tǒng)用的時(shí)鐘發(fā)生器產(chǎn)生哪些信號(hào)? 答:時(shí)鐘發(fā)生器8284A產(chǎn)生恒定的時(shí)鐘信號(hào)(CLK),復(fù)位信號(hào)(RESET),準(zhǔn)備就緒信號(hào)(READY)。18 8086/8088的執(zhí)行部件EU由多少個(gè)通用寄存器,多少個(gè)專用寄存器,幾個(gè)標(biāo)志寄存器和什么組成? 答:執(zhí)行部件由以下幾部分組成:1、四個(gè)通用寄存器 AX BX CX DX;2、四個(gè)專用寄存器,即基數(shù)指針寄存器BP,堆棧指針寄存器SP,源變址寄存器SI,目的變址寄存器DI;3一個(gè)標(biāo)志寄存器FR;4算術(shù)邏輯部件ALU。19 8086/8088的指令隊(duì)列長度分

11、別為多少個(gè)字節(jié)? 答:8086的指針隊(duì)列為6個(gè)字節(jié),8088的指針隊(duì)列有4個(gè)字節(jié)。20 8086與8088的16位寄存器中,有多少個(gè)寄存器可拆分為8位寄存器使用。它們分別是什么?它們又被統(tǒng)稱為什么? 答:在8086與8088的16位寄存器中,有四個(gè)寄存器可拆分為八位寄存器使用,它們分別是AX,BX,CX,DX。統(tǒng)稱為通用寄存器。21 PU從主存取出一條指令并執(zhí)行該指令的時(shí)間稱( ),它通常用若干個(gè)( )來表示,而后者又包括若干個(gè)( )。 指令周期 機(jī)器周期 時(shí)鐘周期 答:12322 計(jì)算機(jī)時(shí)鐘脈沖的頻率稱為什么?,其倒數(shù)又稱為什么? 答:計(jì)算機(jī)的時(shí)鐘脈沖頻率稱為時(shí)鐘頻率,即主頻。其倒數(shù)為時(shí)鐘周

12、期。22 計(jì)算機(jī)主頻為8MHz,每個(gè)機(jī)器周期平均含兩個(gè)時(shí)鐘周期,每條指令平均有2.5個(gè)機(jī)器周期,則該機(jī)器的平均指令執(zhí)行速度為多少M(fèi)IPS?答:該機(jī)器執(zhí)行一條指令所用時(shí)間為:1/8*10-6*2*2.5=5/8*10-6t;平均指令執(zhí)行速度為: 1/ (5/8)=1.6MIPS。24 8086/8088的存儲(chǔ)器可以尋址1MB的空間,在對(duì)I/O進(jìn)行讀寫操作時(shí),20位地址中只有哪些位是有效的?這樣,I/O地址的尋址空間為多大?答:在對(duì)I/O進(jìn)行讀寫操作時(shí),20位地址中只有A0A15有效,I/O地址的尋址空間為216B。25 指令隊(duì)列的作用是什么?答:指令隊(duì)列存放內(nèi)存中取下的將被執(zhí)行的下一條或下幾條指

13、令,使CPU執(zhí)行完一條指令就可立即執(zhí)行下一條,提高CPU的效率。26 8086CPU可訪問的存儲(chǔ)空間為1MB,實(shí)際上分為奇數(shù)存儲(chǔ)體和偶數(shù)存儲(chǔ)體兩部分,對(duì)奇數(shù)存儲(chǔ)體的選擇信號(hào)是什么,對(duì)偶數(shù)存儲(chǔ)體的選擇信號(hào)是什么,對(duì)每個(gè)存儲(chǔ)體單元的選擇信號(hào)是什么? 答:奇數(shù)存儲(chǔ)體的選擇信號(hào)為BHE,偶數(shù)存儲(chǔ)體的選擇信號(hào)為A0。對(duì)每個(gè)存儲(chǔ)體內(nèi)存儲(chǔ)單元的選擇信號(hào)是READY。27 8086有兩種工作方式,即最小模式和最大模式,它由什么信號(hào)決定?最小模式的特點(diǎn)是什么?最大模式的特點(diǎn)是什么? 答:8086的兩種工作模式由信號(hào)決定。當(dāng)接入5V時(shí),系統(tǒng)處于最小模式,只有一個(gè)微處理器,總線控制邏輯部件被減到最小。當(dāng)接地時(shí),系統(tǒng)

14、處于最大模式,實(shí)現(xiàn)多處理器控制系統(tǒng),主要應(yīng)用于大中型系統(tǒng)。28 當(dāng)=0,=0,=1時(shí),CPU完成的操作是什么? 答:CPU完成一個(gè)對(duì)I/O設(shè)備端口的讀操作。29 8088與8086在軟件上是否完全兼容? 答:8086/8088內(nèi)部都采用16位字進(jìn)行操作及存儲(chǔ)器尋址。因此兩者軟件完全兼容。第三章 存儲(chǔ)器技術(shù)習(xí)題解答1 半導(dǎo)體存儲(chǔ)器從器件原理的角度可分為哪兩種類型?答:半導(dǎo)體存儲(chǔ)器從器件原理角度分為ROM和RAM兩種。2 磁盤和磁帶屬于哪種類型的存儲(chǔ)器?答:磁盤和磁帶同屬于外存儲(chǔ)器。3 半導(dǎo)體靜態(tài)RAM和半導(dǎo)體動(dòng)態(tài)RAM分別靠什么原理存儲(chǔ)信息?答:靜態(tài)RAM:用一個(gè)觸發(fā)器電路作為1個(gè)Bit的基本存

15、儲(chǔ)單元,每個(gè)觸發(fā)器能置位存儲(chǔ)1,或復(fù)位存儲(chǔ)0。 動(dòng)態(tài)RAM:每Bit只需一個(gè)管子和一個(gè)電容,存放的信息是1還是0,決定于電容中是否儲(chǔ)存電荷。4 為保證動(dòng)態(tài)RAM中的內(nèi)容不消失,需要進(jìn)行哪一步操作?答:由于電容有漏放電現(xiàn)象,為保證RAM中的內(nèi)容不消失,必須另外設(shè)計(jì)一種電路,定時(shí)(一般為2ms),使電容上泄放的電荷得到補(bǔ)充,即進(jìn)行內(nèi)存刷新。5 存儲(chǔ)器片內(nèi)的地址譯碼有哪兩種方式?答:存儲(chǔ)芯片內(nèi)的地址譯碼有全地址譯碼和獨(dú)立譯碼兩種。6 存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)的記憶設(shè)備,它主要用來存儲(chǔ)哪些東西?答:存儲(chǔ)器用來存儲(chǔ)地址、數(shù)據(jù)和程序。7 存儲(chǔ)字長和存取周期分別指什么?答:存儲(chǔ)字長是指存放在一個(gè)存儲(chǔ)單元中的二進(jìn)制

16、代碼個(gè)數(shù)。存取周期是指存儲(chǔ)器進(jìn)行連續(xù)讀寫操作所允許的最短時(shí)間間隔。8 和外存相比,內(nèi)存的特點(diǎn)有哪些?答:和外存相比,內(nèi)存的特點(diǎn)是容量小、速度快、成本高。9 某計(jì)算機(jī)主存容量為2048KB,這里的2048KB表示多少個(gè)字節(jié)?答:2048KB表示2048*1024個(gè)Byte,即2(11)*2(10)=2(21)個(gè)。10 某計(jì)算機(jī)的主存為3KB,則內(nèi)存地址寄存器需多少位就足夠了?答:主存為3KB,則地址線有12條,所以內(nèi)存地址寄存器需12位。11 若256KB的SRAM具有8條數(shù)據(jù)線,則它具有多少條地址線? 答:具有18條地址線。12 計(jì)算機(jī)的內(nèi)存可采用ROM、RAM、磁盤中的哪幾種?EPROM指的

17、又是什么?主存和CPU之間增加高速緩存的目的是什么?采用虛擬存儲(chǔ)器的目的是什么?答:可采用ROM和RAM。EPROM指可編程并可擦除的ROM,兼有ROM和RAM的功能。由于主存儲(chǔ)器的存/取時(shí)間比CPU慢一個(gè)數(shù)量級(jí),從而嚴(yán)重影響了微型機(jī)的速度,而RAM線路的讀寫時(shí)間可與CPU的處理速度處于同一個(gè)數(shù)量級(jí),因此在主存儲(chǔ)器和CPU之間增加高速緩沖存儲(chǔ)器Cache,以提高機(jī)器的速度。虛擬存儲(chǔ)器的容量比實(shí)際物理上主存儲(chǔ)器的容量大,軟件可根據(jù)需要將所需的存儲(chǔ)區(qū)域調(diào)入物理存儲(chǔ)器,也可以提高處理速度。13 某以8088為CPU的微型計(jì)算機(jī)內(nèi)存RAM區(qū)為00000H3FFFFH,若采用6264、62256、216

18、4或21256各需要多少片芯片?答: 采用6264(8k*8bit)需要32片;采用62256(32k*8bit)需要8片;采用2164 (64k*1bit) 需要32片;采用21256 (256k*1bit)需要8片。14 利用全地址譯碼將6264芯片接在8088的系統(tǒng)總線上,其所占地址范圍為BE000HBFFFFH,試畫連接圖。解答:采用全地址譯碼連接圖如下:圖314 電路圖 15 試?yán)?264芯片,在8088系統(tǒng)總線上實(shí)現(xiàn)00000H03FFFH的內(nèi)存區(qū)域,試畫連接電路圖。解答:采用全地址譯碼。圖314 電路圖16 敘述EPROM的編程過程,說明EEPROM的編程過程。答: PROM的

19、編程有兩種方式,即標(biāo)準(zhǔn)編程和靈巧編程兩種方式。標(biāo)準(zhǔn)編程的過程為:使Vcc為+5v ,Vpp加上+21v 。而后,加上要編程的單元地址,數(shù)據(jù)線加上要寫入的數(shù)據(jù),使CE保持低電平,OE為高電平。當(dāng)上述信號(hào)穩(wěn)定后,在PGM端加上50±5ms的負(fù)脈沖。這樣就將一個(gè)字節(jié)的數(shù)據(jù)寫到了相應(yīng)的地址單元中。重復(fù)上述過程,即可將要寫入的數(shù)據(jù)逐一寫入相應(yīng)的存儲(chǔ)單元中。靈巧編程方式要比標(biāo)準(zhǔn)方式快5倍左右。當(dāng)加上 Vcc= 5v, Vpp=21v 后,對(duì)一個(gè)寫入地址,用1ms編程脈沖進(jìn)行編程,接著進(jìn)行校驗(yàn),如不成功,再加1 ms編程脈沖。最多可進(jìn)行15次,若15次仍不能將數(shù)據(jù)正確寫入,則認(rèn)為芯片本身已損壞。若

20、某一單元用X次1 編程脈沖已正確寫入,校驗(yàn)到這種情況后,立即對(duì)該單元加入4倍 X的編程覆蓋脈沖,則認(rèn)為該單元編程已完成。重復(fù)上述過程,將所有要寫入的單元編程。將數(shù)據(jù)寫入EEPROM有兩種方式,即字節(jié)方式和自動(dòng)頁寫入。在對(duì)EEPROM編程時(shí),可以在線操作。17 有2片6116,現(xiàn)欲將它們接到8088系統(tǒng)中去,其地址范圍為40000H到40FFFH,試畫連接電路圖。利用寫入某數(shù)據(jù)并讀出比較,若有錯(cuò),則在DL中寫入01H;若每個(gè)單元均對(duì),則在DL寫入EEH,試編寫此檢測(cè)程序。解答:連接電路圖見下一頁。18 若用全地址譯碼將EPROM 2764(128或256)接在首地址為A0000H的內(nèi)存區(qū),試畫出

21、電路圖。解答:電路圖如下: 圖318電路圖19 第15題中,若8088的時(shí)鐘頻率為5MHz,6264芯片的讀寫時(shí)間均200 ns,試粗略估計(jì)該芯片能否直接使用。答:8088的時(shí)鐘頻率為5MHZ,則讀寫時(shí)間為200ns,與6264芯片的讀寫時(shí)間相同,若該芯片直接使用,容易出錯(cuò)。17 連接電路圖如下: 圖317電路圖第四章 指令與尋址方式習(xí)題解答1試分別說明下列各指令中源操作數(shù)和目的操作數(shù)使用的尋址方式:() AND AX,0FFH() AND BL,OFFH() MOV DS,AX() CMP SI,CX() MOV DS:0FFH,CL() SUB BPSI,AH() ADC AX,0ABHB

22、X() OR DX,-35BXDI() PUSH DS() CMC答: 目的操作數(shù) 源操作數(shù) (1)寄存器直接尋址 立即數(shù)尋址 (2)寄存器直接尋址 直接尋址 (3)寄存器直接尋址 寄存器直接尋址(4)寄存器間接尋址 寄存器直接尋址(5)直接尋址 寄存器直接尋址(6)基址變址尋址 寄存器直接尋址 (7)寄存器直接尋址 寄存器相對(duì)尋址 (8)寄存器直接尋址 基址變址相對(duì)尋址 (9)無 寄存器直接尋址 (10)隱含尋址2試分別指出下列各指令語句的語法是否有錯(cuò),如有錯(cuò),指明是什么錯(cuò)誤。() MOV BXBP,AX() TEST BP,BL() ADD SI,ABH() AND DH,DL() CMP

23、 CL,1234H() SHR BXDI,3() NOT CX,AX() LEA DS,35SI() INC CX,1() PUSH 45DI答:(1)應(yīng)將BP,BX其中之一該為SI或DI (2)正確 (3)ABH改為0ABH (4) (5)是字操作,CL改為CX (6)移位數(shù)大于1時(shí),應(yīng)用CL (7)NOT指令只有一個(gè)操作數(shù) (8)LEA指令的源操作數(shù)應(yīng)為一內(nèi)存單元地址 (9)此指令不用指出1 (10)45改為45H 3下面兩條指令執(zhí)行后,標(biāo)志寄存器中CF,AF,ZF,SF和OF分別是什么狀態(tài)?MOV DL,86ADD DL,0AAH答: 0101,0110 + 1010,1010 = 1,

24、0000,0000 CF=1 AF=1 ZF=1 SF=1 OF=14在8086/8088CPU中可用于作地址指針的寄存器有哪些?答:有BX,CX,DX,BP,SI,DI (IP,SP,)5已知(DS)09lDH,(SS)1E4AH,(AX)1234H,(BX)=0024H,(CX)5678H,(BP)0024H,(SI)=0012H,(DI)0032H,(09226H)00F6H,(09228H)1E40H,(1E4F6H)091DH。下列各指令或程序段分別執(zhí)行后的結(jié)果如何?() MOV CL,20HBXSI() MOV BPDI,CX() LEA BX,20HBXSIMOV AX,2BX(

25、) LDS SI,BXDIMOV SI,BX() XCHG CX,32HBXXCHG 20HBXSI,AX答(1) (CX)=56F6H; (2) (09226H)=5678H; (3) (AX)=1E40H; (4) (1E4F6H)=0024H; (5) (09226H)=1234H,(AX)=5678H.6已知(SS)09l 5H,(DS)0930H,(SI)0A0H,(DI)1C0H,(BX)80H,(BP)470H?,F(xiàn)有一指令“MOV AX,OPRD”,如源操作數(shù)的物理地址為095C0H,試用四種不同尋址方式改寫此指令(要求上述每個(gè)已知條件至少要使用一次)。答:(1)MOV AX,B

26、P (2)MOV AX,BP+DI+80H (3)MOV AX,DI+0100H MOV AX,SI+0220H (4)MOV AX,02C0H 7試按下列要求分別編制程序段:() 把標(biāo)志寄存器中符號(hào)位SF置1。() 寄存器AL中高低四位互換。() 由寄存器AX,BX組成一個(gè)32位帶符號(hào)數(shù)(AX中存放高十六位),試求這個(gè)數(shù)的負(fù)數(shù)。() 現(xiàn)有三個(gè)字節(jié)存儲(chǔ)單元A,B,C。在不使用ADD和ADC指令的情況下,實(shí)現(xiàn)(A)+(B)=>C。() 用一條指令把CX中的整數(shù)轉(zhuǎn)變?yōu)槠鏀?shù)(如原來已是奇數(shù),則CX中數(shù)據(jù)不變,如原來是偶數(shù),則(CX)+1形成奇數(shù))。答:(1)MOV AH, 80HSAHF (2

27、 ) MOV BL, 0FH AND BL, AL SAL 4 SHR 4 XOR AL, BL (3 ) MOV DX, 7FH SUB AX, DX MOV DX, 0FFH SUB DX, BX MOV BX, DX (4 ) MOV AH, FFH MOV BL, B SUB AH, BL MOV BH, A SUB BH, AH MOV C, BH (5 ) MOV AX, CX NOT AX TEST 01H JNZ NEXT HLT NEXT: INC CX HLT8試給出下列各指令的機(jī)器目標(biāo)代碼:() MOV BL,12HSI() MOV 12HSI,BL() SAL DX,1

28、() ADD 0ABHBPDI,1234H答: (1) 10001010,11011111=8ADF; (2) 10001000,01011100=885C; (3) 11010001,11100010=D1E2; (4) 10000001,10000001=8181.9執(zhí)行下列指令后: STR1 DW AB STR2 DB 16DUP(?) CNT EQU $-STR1 MOV CX,CNT MOV AX,STR1 HLT寄存器CL的值是多少?寄存器AX的值是多少?答:寄存器CL的值為12H,寄存器AX的值為4241H。10JMP FAR PTR ABCD(ABCD是符號(hào)地址)的轉(zhuǎn)移方式是什

29、么?答:JMP FAT PTR ABCD 的轉(zhuǎn)移方式是段間直接轉(zhuǎn)移.11MOV AX,ES:BXSI的源操作數(shù)的物理地址是多少(用CS、DS、ES、SS、BX、SI表示出即可)?答 :MOV AX,ES:BX SI的源操作數(shù)的物理地址是ES×10H+BX+SI.12運(yùn)算型指令的尋址和轉(zhuǎn)移型指令的尋址,其不同點(diǎn)在什么地方?答:運(yùn)算型指令的尋址包括立即數(shù)尋址。寄存器尋址,直接尋址,寄存器間接尋址,寄存器相對(duì)尋址和基址加變址尋址方式。這些尋址方式中,CS,IP寄存器的內(nèi)容不會(huì)發(fā)生變化。 轉(zhuǎn)移型指令的尋址方式包括段內(nèi)直接尋址,段內(nèi)間接尋址,段間直接尋址,段間間接尋址。在后三種尋址方式中,CS

30、,IP寄存器的內(nèi)容發(fā)生改變。13如果TABLE為數(shù)據(jù)段中0032單元的符號(hào)名,其中存放的內(nèi)容為1234H,當(dāng)執(zhí)行指令”MOV AX,TABLE”和”LEA AX,TABLE”后,(AX)中的內(nèi)容分別為多少?答:執(zhí)行MOV AX , TABLE后(AX)=1234H執(zhí)行LEA AX, TABLE 后 (AX)=0032.14.當(dāng)指令”SUB AX,BX”執(zhí)行后,CF=1,說明最高有效位發(fā)生了什么現(xiàn)象?對(duì)無符號(hào)數(shù)來說,操作結(jié)果發(fā)生了什么現(xiàn)象?答:執(zhí)行指令SUB AX,BX后,CF=1,說明最高位發(fā)生了借位對(duì)無符號(hào)來說,操作結(jié)果發(fā)生了溢出。15.在1000H單元中有一條二字節(jié)指令JMP SHORT

31、LAB,如果其中的偏移量分別為30H、6CH、0B8H,則轉(zhuǎn)向地址LAB的值分別為多少?答:轉(zhuǎn)向地址LAB的值分別為:1000×10H+2H+30H=10032H1000×10H+2H+6CH=1006EH1000×10H+2H+B8H=100BAH16下面兩個(gè)語句的區(qū)別在什么地方: X1 EQU 1000H X2=1000H答:“EQU”和“=”都可以作為賦值語句,但二者的區(qū)別是EQU偽操作中的表達(dá)式是不許重復(fù)定義的,而“=”偽操作則許重復(fù)定義。17.調(diào)用指令CALL可進(jìn)行哪四種調(diào)用?答:調(diào)用指令CALL可進(jìn)行段內(nèi)直接調(diào)用,段內(nèi)間接調(diào)用。段間直接調(diào)用。段間間接調(diào)

32、用。18.(AL)=9AH,(BL)=0BCH,當(dāng)分別進(jìn)行下列指令運(yùn)算后,請(qǐng)寫出標(biāo)志位ZF、PF、CF、SF的內(nèi)容:( P8050)(1) ADD AL,BL(2) SUB AL,BL(3) AND AL,BL(4) OR AL,BL(5) XOR AL,BL答:(1)ADD AL,BL 1 0 0 1 1 0 1 0+)1 0 1 1 1 1 0 0 1,0 1 0 1 0 1 1 0 ZF=0,PF=1 CF=1 SF=0(2)SUB AL,BL 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0)1 0 1 1 1 1 0 0 +)0 1 0 0 0 1 0 0 1 1 0

33、1 1 1 1 0 ZF=0 PF=1 CF=1 SF=1(3)AND AL,BL 1 0 0 1 1 0 1 0AND)1 0 1 1 1 1 0 0 ZF=0 PF=0 CF=0 SF=0 1 0 0 1 1 0 0 0 (4)OR AL,BL 1 0 0 1 1 0 1 0 OR)1 0 1 1 1 1 0 0 ZF=0 PF=1 CF=0 SF=0 1 0 1 1 1 1 1 0(5)XOR AL,BL 1 0 0 1 1 0 1 0XOR)1 0 1 1 1 1 0 0 ZF=0 PF=0 CF=0 SF=0 0 0 1 0 0 1 1 019.若(SP)=2800H,試用兩種方法實(shí)

34、現(xiàn)(SP)=27FEH答:方法一:執(zhí)行一次PUSH指令 PUSH CX方法二:執(zhí)行一次PUSHF指令20.試簡述LES REG,SRC所完成的操作?答:LES REG,SRC 是將SRC和SRC+1中的偏移量送到REG 寄存器,而將SRC+2和SRC+3中的段基址送ES段寄存器。21.關(guān)系操作符EQ、NE、LT、GT、LE、GE計(jì)算的結(jié)果為邏輯值,試問0FFFFH代表假,0代表真是否正確?答:0FFFFH代表真。0表示結(jié)果為假。22.堆棧存取操作是以字節(jié)為單位的試分析當(dāng)堆棧存入數(shù)據(jù)和從堆棧取出數(shù)據(jù)時(shí)SP的變化?答:當(dāng)堆棧存入一個(gè)字時(shí),(SP)<SP2從堆棧中取出一個(gè)字時(shí)(SP)<S

35、P+223.試編寫匯編程序段完成以下功能:將1000個(gè)字符的字符串從內(nèi)存的BUFFER1搬移到內(nèi)存的BUFFER2中去。解答 LEA SI,BUFFER1 LEA DI,BUFFER2 MOV CX,1000 CLDREP MOVSb24.試編寫匯編程序段完成以下功能:將數(shù)據(jù)段中100個(gè)字的數(shù)據(jù)塊BLOCK1搬移到同一個(gè)數(shù)據(jù)段的BLOCK2中去。解答: LEA SI,BLOCK1 LEA DI,BLOCK2 MOV CX,100 CLDREP MOVSW25.試編寫匯編程序段完成以下功能:比較DEST和SOURCE中的500個(gè)字節(jié),找出第一個(gè)不相同的字節(jié),如果找到,則將SOURCE中的這個(gè)數(shù)送

36、AL中。解答: CLD LEA DI,DEST LEA SI,SOURCE MOV CX,500 REPE CMPB JCXZ NEXT DEC SI MOV AL,BYTE PTRSINEXT:HLT26.試編寫匯編程序段完成以下功能:求最大值,若自BLOCK開始的內(nèi)存緩沖區(qū)中,有100個(gè)帶符號(hào)的數(shù),希望找到其中最大的一個(gè)值,并將它放到MAX單元中。解答:MOV BX,OFFSET BLOCKMOV AX,BXMOV CX,100ADD BX,2F0:CMP AX,BXJGE F1MOV AX,BXF1:ADD BX,2JCXZ NEXTJMP F0MOV MAX,AXNEXT:HLT27.

37、假定(SS)=2000H,(SP)=0100H,(AX)=2107H,執(zhí)行指令PUSH AX后,存放數(shù)據(jù)21H的物理地址是多少?解答: 07H 21H <原棧頂20100 存放數(shù)據(jù)21H的物理地址是200FFH第五章 匯編語言程序設(shè)計(jì)習(xí)題解答1 指出下列指令的錯(cuò)誤: (1)MOV AH,BX (2)MOV BX,SI (3)MOV AX,SIDI (4)MOV MYDATBXSI,ES:AX (5)MOV BYTE PTRBX,1000 (6)MOV BX,OFFSET MYDATSI (7)MOV CS,AX答:(1)MOV AH,BX AH 為八位,BX為16位 (2)MOV BX,

38、SI 兩個(gè)操作數(shù)不能都是存儲(chǔ)單元 (3)MOV AX,SIDI 一個(gè)操作數(shù)中不能用兩個(gè)變址寄存器 (4)MOV MYDAT BXSI,E8:AX ES ES 后應(yīng)為一個(gè)變址寄存器,表示偏移量 (5)MOV BYTE PTRBX,1000 BYTE 說明時(shí)BX進(jìn)行字節(jié)操作。 而1000為字 (6)MOV BX,OFFSET MYDAT SI OFFSET 為取某個(gè)地址的偏移量,故后面不應(yīng)用SI,而應(yīng)是一個(gè)符號(hào)地址。 (7)MOV 是數(shù)據(jù)尋址,不應(yīng)用程序段寄存器CS.2下面哪些指令是非法的?(假設(shè)OPl,OP2是已經(jīng)用DB定義的變量) (1)CMP l5,BX (2)CMP OPl,25 (3)C

39、MP OPl,OP2 (4)CMP AX,OPl答:(1) CMP 15,BX 非法,兩個(gè)操作數(shù)不能一個(gè)為字,一個(gè)為字節(jié) (2)CMP OP1,25 正確 (3)CMP OP1,OP2 正確 (4)CMP AX,OP1非法,兩操作數(shù)不能一個(gè)為字,一個(gè)為字節(jié)3假設(shè)下列指令中的所有標(biāo)識(shí)符均為類型屬性為字的變量,請(qǐng)指出下列指令中哪些是非法的?它們的錯(cuò)誤是什么? (1)MOV BP,AL (2)MOV WORD_OPBX+4*3DI,SP (3)MOV WORD_OPl,WORD_OP2 (4)MOV AX,WORD_OPlDX (5)MOV SAVE_WORD,DS (6)MOV SP,SS:DAT

40、A_WORDBXSI (7)MOV BXSI,2(8)MOV AX,WORD_ OPl+WORD_OP2(9)MOV AX,WORD_ OPl-WORD_OP2+100(10)MOV WORD_ OPl,WORD_ OPl-WORD_OP2答:(1)MOV BP,AL 非法,BP為16位 AL為八位 (2)MOV WORD_OPBX+4*3DI ,SP 正確(3)MOV WORD_OP1 ,WORD_OP2 非法,兩個(gè)操作數(shù)不能都是變量(4)MOV AX , WORD_OP1DX 非法,DX應(yīng)改為BX,BP,SI或DI,則為寄存器相對(duì)尋址。(5)MOV SAVE_WORD ,DS 非法,未指明

41、數(shù)據(jù)段地址DS的偏移量(6)MOV SP,SS:DATA_WORDBXSI 非法,SS與BX,SI不匹配,SS的偏移量用SP(7)MOV BXSI ,2 正確(8) MOV AX,WORD_OP1+WORD_OP2 正確(9) MOV AX, WORD_OP1WORD_OP2+100 正確(10)MOV WORD_OP1,WORD_OP1WORD_OP2 非法4假設(shè)VAR1和VAR2為字變量,LAB為標(biāo)號(hào),試指出下列指令的錯(cuò)誤之處: (1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LABSI (4)JNZ VARl(5)JMP NEAR LAB答:(1) ADD

42、VAR1,VAR2 ADD指令中,目的操作數(shù)必須是寄存器或存儲(chǔ)單元。 (2)SUB AL,VAR1 AL為8位的,而VAR為字變量16位 (3)JMP LAB SI 格式不對(duì),LAB處應(yīng)為一偏移量,而不是標(biāo)號(hào)。 (4)JNZ VAR1 JNZ 為非零轉(zhuǎn)移,應(yīng)轉(zhuǎn)移到某個(gè)程序段,故后面應(yīng)為一個(gè)標(biāo)號(hào)。 (5)JMP NEAR LAB 段內(nèi)直接轉(zhuǎn)移,格式應(yīng)為 JMP NEAR PTR LAB5畫圖說明下列語句所分配的存儲(chǔ)空間及初始化的數(shù)據(jù)值。BYTE-VAR DB BYTE,12,-12H,3DUP(0,?,2DUP(1,2),?)WORD-VAR DW 5DUP(0,1,2),?,-5,BY,TE,

43、 256H解答:(1)BYTE-VAR (2)WORD-VAR 42 59 54 45 OC F4H 0 - 1 2 1 2 - 0 - 1 2 1 2 - 0 - 1 2 1 2 - 00 00 01 00 02 00 00 00 01 00 02 00 - - FB FF 59 42 45 54 56 02 B YTE12-12H6試列出各種方法,使匯編程序把5150H存入一個(gè)存儲(chǔ)器字中。解答:(1) DW 5150H;(2)DB 50H,51H;(3)DB PQ7請(qǐng)?jiān)O(shè)置一個(gè)數(shù)據(jù)段DATASG,其中定義以下字符變量或數(shù)據(jù)變量。FLD1B為字符串變量:personal computer;FL

44、D2B為十進(jìn)制數(shù)字節(jié)變量:32;FLD3B為十六進(jìn)制數(shù)字節(jié)變量:20;FLD4B為二進(jìn)制數(shù)字節(jié)變量:01011001;FLD5B為數(shù)字的ASCII字符字節(jié)變量:32654;FLD6B為10個(gè)零的字節(jié)變量;FLD7B為零件名(ASCII碼)及其數(shù)量(十進(jìn)制數(shù))的表格:PART1 20PART2 50PART3 14FLD1W為十六進(jìn)制數(shù)字變量:FFF0;FLD2W為二進(jìn)制數(shù)字變量:01011001;FLD3W為(7)中零件表的地址變量;FLD4W為包括5個(gè)十進(jìn)制數(shù)的字變量:5,6,7,8,9;FLD5W為5個(gè)零的字變量;FLD6W為本段中字?jǐn)?shù)據(jù)變量和字節(jié)數(shù)據(jù)變量之間的地址差。解答: DATASG

45、 SEGMENTFLD1B DB personal computerFLD2B DB 32DFLD3B DB 14HFLD4B DB 01011001BFLD5B DB 32654FLD6B DB 10DUP(0)FLD7B DB PART1,20D,PART2,50D,PART3,14DFLD1W DW 0FFFOHFLD2W DW 01011001BFLD3W DW FLD7BFLD4W DW 5,6,7,8,9FLD5W DW 5DUP(0)FLD6W DW FLD1W-FLD1BDATASG ENDS8假設(shè)程序中的數(shù)據(jù)定義如下:PARTNO DW ?PNAME DB 16 DUP(?)

46、COUNT DD ?PLENTH EQU $-PARTNIO問PLENTH的值為多少?它表示什么意義?解答:PLENTH代表著PARTNO至PLENTH的地址差,也即三段數(shù)據(jù)的字節(jié)數(shù)PLENTH=22。9有符號(hào)定義語句如下:BUFF DB 1,2,3,123EBUFF DB 0L EQU EBUFF-BUFF問L的值為多少?解答:L=610假設(shè)程序中的數(shù)據(jù)定義如下:LNAME DB 30 DUP(?)ADDRESS DB 30 DUP(?)CITY DB 15 DUP(?)CODE-LIST DB 1,7,8,3,2(1)用一條MOVE指令將LNAME的偏移地址放入AX。(2)用一條指令將CO

47、DE-LIST的頭兩個(gè)字節(jié)的內(nèi)容放入SI。(3)寫一條偽操作使CODE-LENGTH的值等于CODE-LIST域的實(shí)際長度。解答:(1)MOVE AX,0FFSET LNAME;(2)MOVE SI,0701H;(3)DE-LENGTH EQU LENGTH CODE-LIST。11試寫出一個(gè)完整的數(shù)據(jù)段DATA_SEG,它把整數(shù)5賦與一個(gè)字節(jié),并把整數(shù)-1,0,2,5和4放在10字?jǐn)?shù)組DATA_LIST的頭5個(gè)單元中。然后寫出完整的代碼段,其功能為:把DATA_LIST中頭5個(gè)數(shù)中的最大值和最小值分別存入MAX和MIN單元中。解答:DATA_SEG SEGMENTLENGTH DB 5DATA_LIST DW 1,0,2,5,4,5DUP(?)MAX DW ?MIN DW ?DATA_SEG ENDSCODE_SEG SEGMENTASSUME CS:CODE_SEG,DS:DATA_SEGSTART:MOV AX,DATA_SEG MOV DS,AX MOV SI,OFFSET DATA_LIST MOV AX,SI MOV BX,SI MOV CX,LENGTHXOR AX,AXXOR BX,BXCLCAGAIN:CMP AX,SI JG NEXT1 MOV AX,SINEXT1:CMP BX,SI JNG NEXT2 MOV BX,SINEXT2:JNZ AG

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論