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

下載本文檔

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

文檔簡介

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

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

3、出錯情況提供檢驗條件,當(dāng)結(jié)果操作 數(shù)中的 1 的個數(shù)為偶時置 1。DF方向標(biāo)志位,在串處理指令中控制處理信息的方向。當(dāng)DF=1 時,每次操作后變址寄存器減量,這樣就使串處理從高地址向低地址方向處理。 IF 中斷標(biāo)志,當(dāng) IF=1 時,允許中斷, 否則間斷中斷。 TF陷阱標(biāo)志,用于單步操作方式,當(dāng) TF為 1時,每條指令執(zhí)行完后產(chǎn)生陷 阱,由系統(tǒng)控制計算機(jī)。當(dāng) TF為 0 時, CPU正常工作不產(chǎn)生陷阱。 3哪些操作只能隱含使用某個段寄存器,而不能用其它段寄存器代替?哪些操作出隱含使 用某個段寄存器外,還可以使用其它段寄存器? 答:計算程序的地址隱含使用 CS,正在執(zhí)行的程序隱含使用 SS, 而

4、數(shù)據(jù)的地址隱含使用 ES 和 DS。4 8086/8088 系列違紀(jì)在存儲器中尋找存儲單元時,邏輯地址由哪兩個部分組成的? 答:由段地址和偏移地址兩部分構(gòu)成。5設(shè) IBM PC微機(jī)內(nèi)存中某個單元的物理地址是12345H,試完成下列不同的邏輯地址表示:( 1) 1234H:_H( 2) H:0345H答:(1)1234H:05H (2) 1200H:0345H 6假設(shè)某程序執(zhí)行過程中, ( SS)=0950H,(SP)=64H, 試問該用戶程序的堆棧底部物理地址是 多少? 答: (SS)*10H+(SP)=09564H 7設(shè)堆棧段寄存器 (SS)=0E4BH,程序中設(shè)堆棧長度為 200H 個字節(jié)

5、。試計算出堆棧底部字單 元物理地址,堆棧指針 SP 初始值(即堆棧中沒有數(shù)據(jù)時)和 SP初始值指向的物理地址。 答:物理地址為: 3E4B0H, SP 的初始值為 200H,指向的物理地址為: 3E6B1H.。 8設(shè)某用戶程序( SS) =0925H,SP=30H,(AX)=1234H, ( DX)=5678H,問堆棧的地址范圍是多 少?如現(xiàn)有兩條進(jìn)展指令:PUSH AX PUSH DS 試問兩指令執(zhí)行后, (SP) =? 答:尋址范圍: 09250H09280H, SP減 4 為 2CH。 98086CPU與 8088CPU 由哪些相同之處?又有哪些區(qū)別? 答:他們內(nèi)結(jié)構(gòu)基本相同,不同之處僅

6、在于 8088 有 8 條外部數(shù)據(jù)總線,因此為準(zhǔn) 16 位。 8088 有 16 條外部數(shù)據(jù)總線,兩個 CPU的軟件完全兼容,程序的編制也完全相同。 10 8086CPU從功能上分為幾部分?各部分由什么組成?各部分的功能是什么? 答: 8086CPU從功能上分外兩大部分,一是執(zhí)行部件(EU),二是總線接口部件( BIU)。執(zhí)行部件是由以下四部分組成: ( 1)4個通用寄存器 AX,BX,CX,DX。(2)4 個專用寄存器 BP,SP,XI ,DI。( 3)標(biāo)志寄存器 FR。(4)算術(shù)邏輯部件 ALU。功能是負(fù)責(zé)執(zhí)行所以的指令, 向總線接口部件( BIU)提供指令執(zhí)行的結(jié)果數(shù)據(jù)和地址,并對通用寄

7、存器和標(biāo)志寄存器進(jìn) 行管理??偩€接口部件( BIU)由以下部件組成: ( 1)四個段寄存器,代碼段寄存器,數(shù)據(jù)段寄存器, 附加段寄存器,堆棧段寄存器。 (2)指令指針寄存器。 (3)地址加法器。 ( 4)指令領(lǐng)隊列。 功能: 執(zhí)行外部總線周期, 負(fù)責(zé)存儲器與 I/O 端口傳送數(shù)據(jù)。 也就是負(fù)責(zé) CPU與存儲器和外 設(shè)之間的信息交換。12 8086 系統(tǒng)中的物理地址是如何的得到的?假如CS=2000H, IP=2100H,其物理地址是多少?答: 8086 系統(tǒng)的物理地址是將段地址乘 10H,加上偏移地址。2000H*10H+2100H=22100H (物理地址)13 什么叫總線周期?一個總線周期

8、包括多少時鐘周期,什么情況下要插入TW等待周期?插入多少個 TW取決于什么因素?答:CPU把總線接口部件 BIU 完成一次訪問存儲器或外設(shè)操作所需要的時間稱為一個總 線周期,它包括了四個時鐘周期。當(dāng)訪問存儲器或外設(shè)時, 存儲器或外設(shè)不能及時配合 CPU傳輸數(shù)據(jù)時, 存儲器或外 設(shè)通過“ READY”信號在 T3 之前向 CPU發(fā)出一個“數(shù)據(jù)未準(zhǔn)備好”信號, CPU會在 T3之前插 入一個或多個等待時間周期。當(dāng)存儲器或外設(shè)準(zhǔn)備好數(shù)據(jù),通過“READY”發(fā)“準(zhǔn)備好”信號, CPU接受此信號后,會自動脫離 TW狀態(tài)進(jìn)入 T4狀態(tài)。因此,插入多少個 TW由“ READY” 信號決定。14 什么是最大模

9、式?什么是最小模式?用什么方法將 8086/8088 置于最大模式和最小模 式?答:最小模式, 即系統(tǒng)中只有一個微處理器, 所有的總線控制信號都直接由 8086/8088 , 因此,系統(tǒng)總線控制電路被減到最小。最大模式,即系統(tǒng)里包括兩個或多個微處理器,主處理器就是 8086/8088 ,其它均 為協(xié)助主處理器工作的協(xié)處理器。它主要用于中等規(guī)模或大型的 8086/8088 系統(tǒng)中。將 8086/8088 的第 33 腳接地時,系統(tǒng)處于最大模式,接 5V 時,為最小模式 15 什么是地址鎖存器? 8086/8088 系統(tǒng)中為什么要用地址鎖存器?鎖存的是什么信息? 答:地址鎖存器就是一個暫存器, 它

10、根據(jù)控制信號的狀態(tài), 將總線上地址代碼暫存起來。 8086/8088 數(shù)據(jù)和地址總線采用分時復(fù)用操作方法,即用同一總線既傳輸數(shù)據(jù)又傳輸?shù)刂贰?當(dāng)微處理器與存儲器交換信號時,首先由CPU發(fā)出存儲器地址,同時發(fā)出允許鎖存信號ALE給鎖存器,當(dāng)鎖存器接到該信號后將地址 / 數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸 數(shù)據(jù)。16 8086/8088 系統(tǒng)中的 8286 是什么器件?起什么作用?答: 8286 為總線驅(qū)動器(收發(fā)器,雙向數(shù)據(jù)緩沖器) ,當(dāng)一個系統(tǒng)中所含外設(shè)接口較多 時,用來增強(qiáng)數(shù)據(jù)總線的驅(qū)動能力。17 8086/8088 系統(tǒng)用的時鐘發(fā)生器產(chǎn)生哪些信號? 答:時鐘發(fā)生器 8284A 產(chǎn)生

11、恒定的時鐘信號( CLK),復(fù)位信號( RESET),準(zhǔn)備就緒信號 (READY)。18 8086/8088 的執(zhí)行部件 EU 由多少個通用寄存器,多少個專用寄存器,幾個標(biāo)志寄存器 和什么組成?答:執(zhí)行部件由以下幾部分組成: 1、四個通用寄存器 AX BX CX DX ; 2、四個專用 寄存器, 即基數(shù)指針寄存器 BP,堆棧指針寄存器 SP,源變址寄存器 SI ,目的變址寄存器 DI; 3一個標(biāo)志寄存器 FR;4 算術(shù)邏輯部件 ALU。19 8086/8088 的指令隊列長度分別為多少個字節(jié)?答: 8086的指針隊列為 6個字節(jié), 8088 的指針隊列有 4個字節(jié)。20 8086 與 8088

12、 的 16 位寄存器中,有多少個寄存器可拆分為 8 位寄存器使用。它們分別 是什么?它們又被統(tǒng)稱為什么?答:在 8086 與 8088 的 16 位寄存器中,有四個寄存器可拆分為八位寄存器使用,它們 分別是 AX,BX, CX,DX。統(tǒng)稱為通用寄存器。21 PU 從主存取出一條指令并執(zhí)行該指令的時間稱(),它通常用若干個( )來表示,而后者又包括若干個( )。 指令周期 機(jī)器周期 時鐘周期 答: 1 2322 計算機(jī)時鐘脈沖的頻率稱為什么?,其倒數(shù)又稱為什么? 答:計算機(jī)的時鐘脈沖頻率稱為時鐘頻率,即主頻。其倒數(shù)為時鐘周期。22 計算機(jī)主頻為 8MHz,每個機(jī)器周期平均含兩個時鐘周期, 每條指

13、令平均有 2.5 個機(jī)器周 期,則該機(jī)器的平均指令執(zhí)行速度為多少MIPS?答:該機(jī)器執(zhí)行一條指令所用時間為: 1/8*10 -6*2*2.5=5/8*10 -6t; 平均指令執(zhí)行速度為:1/ (5/8)=1.6MIPS 。24 8086/8088 的存儲器可以尋址 1MB的空間,在對 I/O 進(jìn)行讀寫操作時, 20 位地址中只有 哪些位是有效的?這樣, I/O 地址的尋址空間為多大?答:在對 I/O 進(jìn)行讀寫操作時, 20 位地址中只有 A0 A15 有效, I/O 地址的尋址空間為 16216B。25 指令隊列的作用是什么? 答:指令隊列存放內(nèi)存中取下的將被執(zhí)行的下一條或下幾條指令,使 CP

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

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

16、和半導(dǎo)體動態(tài) RAM分別靠什么原理存儲信息?答:靜態(tài) RAM:用一個觸發(fā)器電路作為 1 個 Bit 的基本存儲單元, 每個觸發(fā)器能置位存儲 1, 或復(fù)位存儲 0。動態(tài) RAM:每 Bit 只需一個管子和一個電容,存放的信息是1 還是 0,決定于電容中是否儲存電荷。4 為保證動態(tài) RAM中的內(nèi)容不消失,需要進(jìn)行哪一步操作? 答:由于電容有漏放電現(xiàn)象, 為保證 RAM中的內(nèi)容不消失, 必須另外設(shè)計一種電路, 定時(一 般為 2ms),使電容上泄放的電荷得到補(bǔ)充,即進(jìn)行內(nèi)存刷新。5 存儲器片內(nèi)的地址譯碼有哪兩種方式? 答:存儲芯片內(nèi)的地址譯碼有全地址譯碼和獨立譯碼兩種。6 存儲器是計算機(jī)系統(tǒng)的記憶設(shè)

17、備,它主要用來存儲哪些東西? 答:存儲器用來存儲地址、數(shù)據(jù)和程序。7 存儲字長和存取周期分別指什么? 答:存儲字長是指存放在一個存儲單元中的二進(jìn)制代碼個數(shù)。 存取周期是指存儲器進(jìn)行連續(xù) 讀寫操作所允許的最短時間間隔。8 和外存相比,內(nèi)存的特點有哪些? 答:和外存相比,內(nèi)存的特點是容量小、速度快、成本高。9 某計算機(jī)主存容量為 2048KB,這里的 2048KB 表示多少個字節(jié)?答: 2048KB表示 2048*1024 個 Byte ,即 2(11)*2(10)=2( 21)個。10 某計算機(jī)的主存為 3KB,則內(nèi)存地址寄存器需多少位就足夠了? 答:主存為 3KB,則地址線有 12 條,所以內(nèi)

18、存地址寄存器需 12 位。11 若 256KB的 SRAM具有 8 條數(shù)據(jù)線,則它具有多少條地址線 ? 答:具有 18 條地址線。12 計算機(jī)的內(nèi)存可采用 ROM、 RAM、磁盤中的哪幾種? EPROM指的又是什么? 主存和 CPU之間增加高速緩存的目的是什么?采用虛擬存儲器的目的是什么? 答:可采用 ROM和 RAM。 EPROM指可編程并可擦除的 ROM,兼有 ROM和 RAM的功能。由于主 存儲器的存 / 取時間比 CPU慢一個數(shù)量級,從而嚴(yán)重影響了微型機(jī)的速度,而RAM線路的讀寫時間可與 CPU的處理速度處于同一個數(shù)量級, 因此在主存儲器和 CPU之間增加高速緩沖存 儲器 Cache,

19、以提高機(jī)器的速度。虛擬存儲器的容量比實際物理上主存儲器的容量大,軟件 可根據(jù)需要將所需的存儲區(qū)域調(diào)入物理存儲器,也可以提高處理速度。13 某以 8088 為 CPU的微型計算機(jī)內(nèi)存 RAM區(qū)為 00000H3FFFFH,若采用 6264、 62256、2164 或 21256 各需要多少片芯片 ?答:采用 6264(8k*8bit )需要 32 片;采用 6225(6 32k*8bit )需要 8片;采用 2164 (64k*1bit) 需要 32 片;采用 21256 (256k*1bit) 需要 8 片。14 利 用全地址譯碼將 6264 芯片接在 8088 的系統(tǒng)總線上 ,其所占地址 范

20、圍 為 BE000HBFFFF,H 試畫連接圖。解答:采用全地址譯碼連接圖如下:8088系統(tǒng)BUSD0 .D7A0A1A125432123215 試?yán)?6264 芯片,在 8088 系 統(tǒng) 總 線 上 實 現(xiàn) 00000H03FFFH的內(nèi)存區(qū) 域,試畫連接電路圖。 解答:采用全地址譯碼。987654+5V2227A0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10A11A12OE6264WECS2CS1241112131518圖 3 14 電路圖8088系統(tǒng)BUSD0D7A0A1A12MEMRMEMW232227262016 敘述 EPROM的編程過程,說明 EEP

21、ROM的編程過程。A19A18A17A16A15A14A13+5VA0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10A11A12OE6264WECS2CS11098765432524211112131516171819圖 3 14 電路圖Vcc 為+5v , Vpp加上 +21v 。而后,CE保持低電平, OE為高電平。當(dāng)上答: PROM的編程有兩種方式,即標(biāo)準(zhǔn)編程和靈巧編程兩種方式。標(biāo)準(zhǔn)編程的過程為:使加上要編程的單元地址,數(shù)據(jù)線加上要寫入的數(shù)據(jù),使 述信號穩(wěn)定后, 在 PGM端加上 50 5ms的負(fù)脈沖。 這樣就將一個字節(jié)的數(shù)據(jù)寫到了相應(yīng)的地址單元中。 重復(fù)上述

22、過程, 即可將要寫入的數(shù)據(jù)逐一寫入相應(yīng)的存儲單元中。 靈巧編程方式 要比標(biāo)準(zhǔn)方式快 5 倍左右。當(dāng)加上 Vcc= 5v , Vpp=21v 后,對一個寫入地址,用 1ms編程 脈沖進(jìn)行編程,接著進(jìn)行校驗,如不成功,再加1 ms 編程脈沖。最多可進(jìn)行 15 次,若 15次仍不能將數(shù)據(jù)正確寫入,則認(rèn)為芯片本身已損壞。若某一單元用 X 次 1 編程脈沖已正確 寫入,校驗到這種情況后,立即對該單元加入4 倍 X 的編程覆蓋脈沖,則認(rèn)為該單元編程已完成。重復(fù)上述過程,將所有要寫入的單元編程。將數(shù)據(jù)寫入EEPROM有兩種方式,即字節(jié)方式和自動頁寫入。在對 EEPROM編程時,可以在線操作。17 有 2 片

23、 6116,現(xiàn)欲將它們接到 8088 系統(tǒng)中去,其地址范圍為 40000H 到 40FFFH, 試畫連接電路圖。利用寫入某數(shù)據(jù)并讀出比較,若有錯,則在DL 中寫入 01H;若每個單元均對,則在 DL 寫入 EEH,試編寫此檢測程序。解答:連接電路圖見下一頁。18 若用全地址譯碼將 EPROM 2764(128或 256) 接在首地址為 A0000H的內(nèi)存區(qū),試畫出電路圖。 解答:電路圖如下:A 13A 14A 15MEMRAAA總線信19 第 15 題中,若 8088 的時鐘 頻率為 5MHz,6264 芯片的讀寫時 間均 200 ns ,試粗MEMR+5VAY0BY1CY274LS138Y3

24、Y4 E1Y5E2Y6E3Y7RESETA 0- A 129876543252421232282022271A0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10A11A12Vcc (+ 5V)GNCEOE2764PGMVPP151413455611101231112131516171819略估計該芯片能否直接使用。答: 8088 的時鐘頻率為 片直接使用,容易出錯。5MHZ,則讀寫時間為8088系統(tǒng)BUSD 0- D 7A017 連接電路圖如下:A10MEMWMEMRD 0- D 7A0A10D 0- D 70 7200ns ,與 6264 芯片的讀寫時間相同,若該芯

25、8654321232219圖 318 電路圖2120188765423MEMW2219MEMRA11A19A18A17A16A15A14A13A12A0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10WG 6116A0D0A1D1A2D2A3D3A4D4A5D5A6D6A7D7A8A9A10W6116E101113141516179AY0BY1CY2Y3Y4E1Y5E2Y6E3Y71514131211109774LS138圖 317 電路圖第四章 指令與尋址方式習(xí)題解答1試分別說明下列各指令中源操作數(shù)和目的操作數(shù)使用的尋址方式:()ANDAX,0FFH()ANDBL,

26、OFFH()MOVDS,AX()CMPSI,CX()MOVDS:0FFH , CL()SUBBPSI , AH()ADCAX,0ABHBX()OR DX,-35BXDI()PUSHDS()CMC目的操作數(shù)源操作數(shù)(1)寄存器直接尋址立即數(shù)尋址2)寄存器直接尋址直接尋址3)寄存器直接尋址寄存器直接尋址4)寄存器間接尋址寄存器直接尋址5)直接尋址寄存器直接尋址6)基址變址尋址寄存器直接尋址7)寄存器直接尋址寄存器相對尋址8)寄存器直接尋址基址變址相對尋址9)無寄存器直接尋址(10) 隱含尋址2試分別指出下列各指令語句的語法是否有錯,如有錯,指明是什么錯誤。()()()()()()()()()()M

27、OV BXBP , AX TEST BP , BL ADD SI , ABHAND DH, DL CMP CL, 1234H SHR BXDI , 3 NOT CX, AX LEA DS ,35SIINC CX , 1 PUSH 45DI答:( 1)應(yīng)將 BP, BX其中之一該為 SI 或 DI (2)正確( 3) ABH改為 0ABH是字操作, CL改為 CX 移位數(shù)大于 1 時,應(yīng)用 CL NOT指令只有一個操作數(shù) LEA指令的源操作數(shù)應(yīng)為一內(nèi)存單元地址 此指令不用指出 1(4)(5)(6)(7)(8)(9)(10)45 改為 45H3下面兩條指令執(zhí)行后,標(biāo)志寄存器中CF,AF,ZF, S

28、F和 OF分別是什么狀態(tài) ?MOVDL, 86ADD DL , 0AAH答: 0101 , 0110 + 1010 ,1010 = 1 , 0000,0000CF=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)

29、091DH。下列各指令或程序段分別執(zhí)行后的結(jié)果如何?)MOVCL, 20HBXSI)MOVBPDI ,CX)LEABX,20HBXSIMOVAX, 2BX)LDSSI , BXDIMOV SI , BX)XCHGCX, 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。 現(xiàn)有一指令

30、“ MOVA X, OPRD”,如源操作數(shù)的物理地址為 095C0H,試用四種不同尋址方式改 寫此指令 ( 要求上述每個已知條件至少要使用一次答:( 1) MOV AX, BPAX,AX,BP+DI+80HDI+0100HSI+0220H02C0H( 2) MOV( 3) MOVAX,MOV AX( 4) MOV 7 試按下列要求分別編制程序段:把標(biāo)志寄存器中符號位 SF置 1。寄存器 AL 中高低四位互換。由寄存器 AX,BX組成一個 32 位帶符號數(shù) (AX 中存放高十六位 ) ,試求這個數(shù) 的負(fù)數(shù)。)現(xiàn)有三個字節(jié)存儲單元 A, B,C。在不使用 ADD和 ADC指令的情況下, 實現(xiàn) (A

31、)+(B)=C 。)用一條指令把 CX中的整數(shù)轉(zhuǎn)變?yōu)槠鏀?shù) ( 如原來已是奇數(shù), 則 CX中數(shù)據(jù)不變, 如原來是偶數(shù),則 (CX)+1 形成奇數(shù) ) 。答:(1)MOV AH, 80HSAHF(2 ) MOV BL, 0FHAND BL, ALSAL4SHR4XORAL, BL(3 ) MOV DX, 7FHSUBAX, DXMOVDX, 0FFHSUBDX, BXMOVBX, DX(4 ) MOV AH, FFHMOVBL, BSUBAH, BLMOVBH, ASUBBH, AHMOVC, BH(5 ) MOV AX, CXNOTAXTEST01HJNZNEXTHLTNEXT: INC CXH

32、LT8試給出下列各指令的機(jī)器目標(biāo)代碼:)MOVBL,12HSI)MOV12HSI , BL)SALDX,1)ADD0ABHBPDI ,1234H答: (1) 10001010,11011111=8ADF;(2) 10001000,01011100=885C;(3) 11010001,11100010=D1E2;(4) 10000001,10000001=8181.9執(zhí)行下列指令后:STR1 DW ABSTR2 DB 16DUP(?)CNT EQU $-STR1 MOV CX,CNTMOV AX,STR1HLT寄存器 CL的值是多少?寄存器 AX 的值是多少?答:寄存器 CL 的值為 12H,寄

33、存器 AX的值為 4241H。10 JMP FAR PTR ABCD(ABCD是符號地址 )的轉(zhuǎn)移方式是什么?答: JMP FAT PTR ABCD 的轉(zhuǎn)移方式是段間直接轉(zhuǎn)移 .11 MOV AX,ES:BXSI 的源操作數(shù)的物理地址是多少(用CS、DS、ES、SS、BX、SI 表示出即可)?答 :MOV AX,ES:BX SI 的源操作數(shù)的物理地址是 ES 10H+BX+SI. 12運算型指令的尋址和轉(zhuǎn)移型指令的尋址,其不同點在什么地方? 答:運算型指令的尋址包括立即數(shù)尋址。寄存器尋址,直接尋址,寄存器間接尋址,寄存器 相對尋址和基址加變址尋址方式。這些尋址方式中, CS,IP 寄存器的內(nèi)容

34、不會發(fā)生變化。 轉(zhuǎn)移型指令的尋址方式包括段內(nèi)直接尋址,段內(nèi)間接尋址,段間直接尋址,段間間接尋址。 在后三種尋址方式中, CS,IP 寄存器的內(nèi)容發(fā)生改變。13如果 TABLE為數(shù)據(jù)段中 0032 單元的符號名,其中存放的內(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)象?對無符號 數(shù)來說,操作結(jié)果發(fā)生了什么現(xiàn)象

35、?答:執(zhí)行指令 SUB AX,BX 后, CF=1,說明最高位發(fā)生了借位對無符號來說,操作結(jié)果發(fā)生 了溢出。15. 在 1000H單元中有一條二字節(jié)指令 JMP SHORT LAB,如果其中的偏移量分別為 30H、 6CH、0B8H,則轉(zhuǎn)向地址 LAB的值分別為多少? 答:轉(zhuǎn)向地址 LAB 的值分別為:100010H+2H+30H=10032H 100010H+2H+6CH=1006EH1000 10H+2H+B8H=100BAH 16下面兩個語句的區(qū)別在什么地方:X1 EQU 1000H X2=1000H答:“ EQU”和“ =”都可以作為賦值語句,但二者的區(qū)別是EQU偽操作中的表達(dá)式是不許

36、重復(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)用。18. (AL)=9AH , (BL)=0BCH,當(dāng)分別進(jìn)行下列指令運算后,請寫出標(biāo)志位ZF、PF、 CF、SF的內(nèi)容:( P 8050)(1)ADDAL,BL(2)SUBAL,BL(3)ANDAL,BL(4)ORAL,BL(5)XORAL,BL答:(1)ADD AL,BL1 0 0 1 1 0 1 0+)1 0 1 1 1 1 0 01,0 1 0 1 0 1 1 0ZF=0,PF=1 CF=1 SF=0(2) SUB A

37、L ,BL1 0 0 1 1 0 1 01 0 0 1 1 0 1 0)1 0 1 1 1 1 0 0 + )0 1 0 0 0 1 0 0 ZF=0 PF=1 CF=1 SF=1(3) AND AL, BL ZF=0 PF=0 CF=0 SF=01 0 0 1 1 0 1 0AND)1 0 1 1 1 1 0 01 0 0 1 1 0 0 0(4) OR AL,BL1 0 0 1 1 0 1 0 OR)1 0 1 1 1 1 0 0 ZF=0 PF=1 CF=0 SF=01 0 1 1 1 1 1 0(5) XOR AL, BL ZF=0 PF=0 CF=0 SF=01 0 0 1 1 0

38、1 0 XOR)1 0 1 1 1 1 0 00 0 1 0 0 1 1 019. 若(SP)=2800H,試用兩種方法實現(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計算的結(jié)果為邏輯值,試問 0FFFFH代表 假, 0代表真是否正確? 答: 0FFFFH代表真。 0 表示結(jié)果為

39、假。22. 堆棧存取操作是以字節(jié)為單位的試分析當(dāng)堆棧存入數(shù)據(jù)和從堆棧取出數(shù)據(jù)時 SP 的變化? 答:當(dāng)堆棧存入一個字時, (SP)SP 2從堆棧中取出一個字時( SP) SP+223. 試編寫匯編程序段完成以下功能:將 1000 個字符的字符串從內(nèi)存的 BUFFER1搬 移到內(nèi)存的 BUFFER2中去。解答 LEA SI , BUFFER1LEA DI , BUFFER2MOV CX , 1000CLDREP MOVSb24. 試編寫匯編程序段完成以下功能:將數(shù)據(jù)段中 100 個字的數(shù)據(jù)塊 BLOCK1搬移到 同一個數(shù)據(jù)段的 BLOCK2中去。 解答: LEA SI , BLOCK1LEA D

40、I , BLOCK2MOV CX , 100CLDREP MOVSW25. 試編寫匯編程序段完成以下功能:比較DEST和 SOURCE中的 500 個字節(jié),找出第一個不相同的字節(jié),如果找到,則將SOURCE中的這個數(shù)送 AL 中。解答: CLDLEA DI , DESTLEA SI , SOURCEMOV CX , 500REPE CMPBJCXZ NEXTDEC SIMOV AL , BYTE PTRSI NEXT: HLT26. 試編寫匯編程序段完成以下功能:求最大值,若自BLOCK開始的內(nèi)存緩沖區(qū)中,有 100 個帶符號的數(shù),希望找到其中最大的一個值,并將它放到MAX單元中。解答: MO

41、V BX, OFFSET BLOCKMOV AX, BXMOV CX, 100ADD BX ,2F0: CMP AX,BXJGE F1MOV AX, BXF1: ADD BX,2JCXZ NEXTJMP F0MOV MAX, AXNEXT: HLT27. 假定 (SS)=2000H,(SP)=0100H,(AX)=2107H,執(zhí)行指令 PUSH AX后,存放數(shù)據(jù) 21H的物理地址是多少?解答: 原棧頂 20100存放數(shù)據(jù) 21H 的物理地址是 200FFH第五章 匯編語言程序設(shè)計習(xí)題解答1 指出下列指令的錯誤:(1) MOV AH , BX(2) MOV BX ,SI(3) MOV AX ,

42、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 ,SI兩個操作數(shù)不能都是存儲單元( 3)MOV AX, SIDI一個操作數(shù)中不能用兩個變址寄存器( 4) MOV MYDAT BXSI ,E8:AX ESES 后應(yīng)為一個變址寄存器,表示偏移量( 5) MOV BYTE PTRBX,1000BYTE 說明時 BX 進(jìn)行字節(jié)操作。 而 1000 為字( 6) MOV BX

43、,OFFSET MYDAT SIOFFSET 為取某個地址的偏移量,故后面不應(yīng)用 SI ,而應(yīng)是一個符號地址。 ( 7) MOV 是數(shù)據(jù)尋址,不應(yīng)用程序段寄存器CS.2下面哪些指令是非法的 ?( 假設(shè) OPl,OP2是已經(jīng)用 DB定義的變量 )(1) CMP l5 , BX(2) CMP OPl , 25(3) CMP OPl , OP2(4) CMP AX , OPl答:(1) CMP 15,BX 非法,兩個操作數(shù)不能一個為字,一個為字節(jié)( 2) CMP OP1, 25 正確( 3) CMP OP1, OP2 正確( 4)CMP AX, OP1 非法,兩操作數(shù)不能一個為字,一個為字節(jié) 3假設(shè)

44、下列指令中的所有標(biāo)識符均為類型屬性為字的變量,請指出下列指令中哪些是非法 的?它們的錯誤是什么 ?(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: DATA_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_O

45、P2 答:( 1) MOV BP, AL非法, BP為 16 位 AL 為八位( 2) MOV WORD_OPBX+4*3DI , SP 正確(3)MOV WORD_OP,1 WORD_OP2 非法,兩個操作數(shù)不能都是變量(4)MOV AX , WORD_OP1DX 非法, DX 應(yīng)改為 BX ,BP ,SI 或 DI ,則為寄存器相對尋址。(5)MOV SAVE_WOR,D DS 非法,未指明數(shù)據(jù)段地址 DS的偏移量(6)MOV SP, SS:DATA_WORDBXSI非法, SS與BX ,SI 不匹配, SS的偏移量用 SP(7)MOV BXSI , 2 正確(8)MOV AX, WORD

46、_OP1+WORD_O正P確2(9)MOV AX, WORD_OP1 WORD_OP2+10正0 確(10)MOV WORD_O,P1WORD_OP1WORD_OP2 非法4假設(shè) VAR1和 VAR2為字變量, LAB 為標(biāo)號,試指出下列指令的錯誤之處:(1)ADD VAR1 , VAR2(2)SUB AL , VAR1(3)JMP LABSI(4)JNZ VARl(5)JMP NEAR LAB 答:( 1) ADD VAR1, VAR2ADD 指令中,目的操作數(shù)必須是寄存器或存儲單元。( 2)SUB AL, VAR1AL 為 8 位的,而 VAR為字變量 16 位( 3) JMP LAB S

47、I 格式不對, LAB處應(yīng)為一偏移量,而不是標(biāo)號。( 4) JNZ VAR1JNZ 為非零轉(zhuǎn)移,應(yīng)轉(zhuǎn)移到某個程序段,故后面應(yīng)為一個標(biāo)號。( 5) JMP NEAR LAB段內(nèi)直接轉(zhuǎn)移,格式應(yīng)為 JMP NEAR PTR LAB5畫圖說明下列語句所分配的存儲空間及初始化的數(shù)據(jù)值。BYTE-VAR DB BYTE, 12,-12H,3DUP(0,?, 2DUP(1,2),?)WORD-VAR DW 5DUP(0,1,2),?,-5, BY, TE, 256H 解答:(1)BYTE-VAR( 2)WORD-VAR000001000200000001000200-FBFF594245545602425

48、95445OCF4H0-1212-0-1212-0-1212-BYTE12-12H6試列出各種方法,使匯編程序把5150H 存入一個存儲器字中。解答:( 1) DW 5150H ;( 2)DB 50H ,51H;( 3)DB PQ 7請設(shè)置一個數(shù)據(jù)段 DATASG,其中定義以下字符變量或數(shù)據(jù)變量。FLD1B為字符串變量: personal computer ;FLD2B為十進(jìn)制數(shù)字節(jié)變量: 32;FLD3B為十六進(jìn)制數(shù)字節(jié)變量: 20;FLD4B為二進(jìn)制數(shù)字節(jié)變量: 01011001 ;FLD5B為數(shù)字的 ASCII 字符字節(jié)變量: 32654;FLD6B為 10 個零的字節(jié)變量;FLD7B為

49、零件名( ASCII 碼)及其數(shù)量(十進(jìn)制數(shù))的表格:PART1 20PART2 50PART3 14FLD1W為十六進(jìn)制數(shù)字變量: FFF0;FLD2W為二進(jìn)制數(shù)字變量: 01011001;FLD3W為( 7)中零件表的地址變量;FLD4W為包括 5 個十進(jìn)制數(shù)的字變量: 5,6, 7,8,9;FLD5W為 5 個零的字變量;FLD6W為本段中字?jǐn)?shù)據(jù)變量和字節(jié)數(shù)據(jù)變量之間的地址差。解答: DATASG SEGMENTFLD1B DB personal computer FLD2B DB 32DFLD3B DB 14HFLD4B DB 01011001BFLD5B DB 32654FLD6B

50、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(?)COUNT DD?PLENTH EQU $-PARTNIO問 PLENTH的值為多少?它表示什么意義?解答: PLENTH代表著 PARTNO至 PLENTH的地址差,也即三段數(shù)據(jù)的字節(jié)

51、數(shù)PLENTH=2。29有符號定義語句如下: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)用一條指令將 CODE-LIST的頭兩個字節(jié)的內(nèi)容放入 SI 。(3)寫一條偽操作使 CODE-LENGT的H 值等于 CODE-LIST域的實際長度。 解答:(1)MOVE AX,0FFSET LNAME;(2)MOVE SI , 0701H;(3)DE-LENGTH EQU LENGTH CODE-LIST。11試寫出一個完整的數(shù)據(jù)段 DATA_SE,G它把整數(shù) 5 賦與一個字節(jié),并把整數(shù) -1 ,0,2,5 和 4 放在 10 字?jǐn)?shù)組 DATA_LIST的頭 5 個單元中。然后寫出完整的代碼段, 其功能為:把 DATA- _LIST 中頭 5 個數(shù)中的最大值和最小值分別存入MAX和 MIN 單元中。解答: DATA_SEG SEGMENTLENGTH DB 5DATA_LIST DW 1,0,2,5,4,5

溫馨提示

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

評論

0/150

提交評論