8086微機原理與接口技術試題庫_第1頁
8086微機原理與接口技術試題庫_第2頁
8086微機原理與接口技術試題庫_第3頁
8086微機原理與接口技術試題庫_第4頁
8086微機原理與接口技術試題庫_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、電子科技大學微機原理與接口技術試題一、問答題1、下列字符表示成相應的ASCII碼是多少?(1)換行 OAH (2)字母“ Q 51H(3)空格 20H2、下列各機器數所表示數的范圍是多少?(1)8位二進制無符號定點整數;0255(2)8位二進制無符號定點小數;(3)16位二進制無符號定點整數;065535(4)用補碼表示的16位二進制有符號整數;-32768327673、(111)X=273,基數 X=? 164、有一個二進制小數X=(1)若使X 1/2,則X1X5應滿足什么條件? X仁1若使X 1/8,則X1X5應滿足什么條件? X1V X2 V X3=1(2)5、有兩個二進制數X=0110

2、1010 丫二,試比較它們的大小。(1)X和Y兩個數均為無符號數;(2)X和丫兩個數均為有符號的補碼數。二、填空題1、對于R進制數來說,其基數(能使用的數字符號個數)是個,能使用的最小數字符號是 _0o1、2、十進制數72轉換成八進制數是 110Q3、與十進制數67等值的十六進制數是 43H1、4、二進制數轉換成十進制數是o2、5、十六進制數0E12轉換成二進制數是_0 00010010B。三、選擇題1、 在計算機內部,一切信息的存取、處理和傳送都是以 D 形式進行的。A EBCDIC B )ASCII碼 C )十六進制編碼 D ) 編碼2、與十進制數56等值的二進制數是 A 。A) 1110

3、00B ) 111001 C ) 101111 D ) 1101103、 十進制數59轉換成八進制數是A 。A)73QB )37Q C )59Q D )112Q4、 與十進制數等值的十六進制數是_B。A)B) C) D)5、 二進制數轉換成十進制數是C。A)B) C) D)&二進制數轉換成十六進制數是_B。A)3ACHB ) C)3A3H D)7、 十六進制數轉換成二進制數是D。A)B)C)D)8、 將十六進制數轉換成十進制數是_C。A)B)2501625 C) D)9、 十進制正數43的八位二進制原碼B。A) 00110101 B ) 00101011 C ) D )10、 十進制正數38的

4、八位二進制補碼是 _D。A) 00011001 B ) C ) D ) 00100110四、是非判斷題1、 在第三代計算機期間出現了操作系統。(V )2、 對于種類不同的計算機,其機器指令系統都是相同的。(X3、 在計算機中,數據單位bit的意思是字節(jié)。(X )二進制)4、八進制數的基數為8,因此在八進制數中可以使用的數字符號是1、2、3、4、5、6、7、8。( X )5、在漢字國標碼GB2312-80的字符集中,共收集了 6763個常用漢字 (V )1. 微處理器,微型計算機和微型計算機系統三者之間有何區(qū)別?答:微處理器即CPU它包括運算器、控制器、寄存器陣列和內部總線 等部分,用于實現微型

5、計算機的運算和控制功能,是微型計算機的核心; 一臺微型計算機由微處理器、內存儲器、 I/O 接口電路以及總線構成;微型 計算機系統則包括硬件系統和軟件系統兩大部分,其中硬件系統又包括微 型計算機和外圍設備;由此可見 , 微處理器是微型計算機的重要組成部分, 而微型計算機系統又主要由微型計算機作為其硬件構成。2. CPU在內部結構上由哪幾部分構成? CPL應具備哪些主要功能?答:CPU在內部結構上由運算器、控制器、寄存器陣列和內部總線等各 部分構成,其主要功能是完成各種算數及邏輯運算,并實現對整個微型計 算機控制,為此,其內部又必須具備傳遞和暫存數據的功能。3. 累加器和其它通用寄存器相比有何不

6、同?答: 累加器是通用寄存器之一,但累加器和其它通用寄存器相比又有 其獨特之處。累加器除了可用做通用寄存器存放數據外,對某些操作,一 般操作前累加器用于存放一個操作數,操作后,累加器用于存放結果。4. 微型計算機的總線有哪幾類?總線結構的特點是什么?答: 微型計算機的總線包括 地址總線 、數據總線 和控制總線 三類,總 線結構的特點是結構簡單、可靠性高、易于設計生產和維護,更主要的是 便于擴充。5. 舉出 10 個微型計算機應用的例子。答: 略6. 計算機 I/O 接口有何用途?試列出 8 個 I/O 接口。答: 計算機 I/O 接口是連接計算機和外部設備的紐帶和橋梁,它主要用 于協調和控制計

7、算機與外設之間的信息流通和交換 。例如:串行通訊口 (CO M口)、并行打印機口、軟盤驅動器接口、硬盤驅動器接口、光驅接口、顯 示器接口、音響設備接口、其它通用設備接口( USB SCSI等)。7. 現在,計算機主板上一般都包括哪些 I/O 接口? I/O 接口卡如何與 主板相連?答: 現在,計算機主板上一般包括串行通訊口、并行打印口、軟盤驅 動器接口、硬盤驅動器接口、光驅接口、USB接 口等。顯示器適配器、網卡、modem卡等I/O 接口卡一般通過總線插槽與主板相連 。答:系統總線是CPU與存儲器及橋接器之間傳遞信息的通道,AGP總線 專門用與連接CPU與顯示器適配器,PCI總線一般用于連接

8、一些 高速外設接 口作為高速外設與CPU或內存交換信息的通道,而ISA總線一般用于連接一 些非高速外設接口作為非高速外設與CPU或內存交換信息的通道。9. 試說明計算機用戶,計算機軟件,計算機硬件三者的相互關系。答: 計算機用戶,計算機軟件系統,計算機硬件系統共同構成一個計 算機應用系統,三者在該系統中處于三個不同的層次。計算機用戶處于最 高層,計算機軟件處于中間層,計算機硬件系統處于最下層。在這里計算 機用戶是系統的主宰,他們通過軟件系統與硬件系統發(fā)生關系,指揮計算 機硬件完成指定的任務。即,計算機用戶使用程序設計語言編制應用程 序,在系統軟件的干預下使用硬件系統進行工作。10. 簡述DOS

9、操作系統各部分的作用及相互關系。答:DOS操作系統包括 3 個模塊:DOS-Shell、DOS-Kernel、DOS-BIOS.DOS-Shell模塊對用戶輸入的DOS命令行或應用程序行作出響應。即負 責DOS命令的解釋和任務的分配,具體工作則要靠DOS-Kernel模塊所提供的 系統功能完成。DOS-Kernel 模塊盡管提供了許多的系統功能,但由于執(zhí)行每一個系統 功能過程中,完全依賴各種設備實現指定的功能,因此,它還要進一步調 用DOS-BIOS莫塊中的設備驅動程序才能工作。DOS-BIOS模塊對DOS-Kernel傳送的請求進行解釋,最終轉換為對固 化在ROM-BIO中的設備控制程序的請

10、求并由它們去控制硬件,完成指定的操 作。11. 存儲單元的選擇由什么信號控制?讀、寫靠什么信號區(qū)分?答: 存儲單元的選擇由 地址信號 控制,而對存儲單元進行讀操作還是 寫操作則要靠 讀、寫信號 區(qū)分。12. 以一個可執(zhí)行文件的運行為例,簡述程序執(zhí)行過程。答:當在DOS提示符下鍵入一個可執(zhí)行文件名稱(或在其它操作系統環(huán) 境下執(zhí)行有關操作)后 , 操作系統自動將該文件從外存裝入內存并使指令指 針指向其第一條指令,從而啟動文件執(zhí)行過程。首先將第一條指令從內存 取入CPU中譯碼執(zhí)行,同時指令指針自動加 1或按指令的要求作出相應改 變,指向下一條要執(zhí)行的指令,接著將下一條指令從內存取入CPU?碼執(zhí)行,這

11、樣不斷重復取指令和執(zhí)行指令的過程,逐條執(zhí)行指令,直至程序結 束。1. 把下列各數化成二進制數和八進制數 (二進制取 3位小數,八進制取 位小數 ): 7+3 4, 3 64, ,答: 7+3/4=; 7+3/4=; 3/64= ; 3/64= ; =; =;2. 把下列各數化成十進制數: ,答:=; =; =3. 完成下列二進制數運算: +,*, 1/1101答: +=; *=; 1/1101=4. 完成下列各十六進制數的運算:A39E+28DC,D5AB-7CE5, 2BF*4C,C16E/3A答: A39E+28DC=CC7A; D5AB-7CE5=58C6; 2BF*4C=D0B4; C

12、16E/3A=5. 先將 15B*8E/2A 中的十六進制數化成十進制數,再進行計算,最后 再將結果化為十六進制數。答: 15BH*8EH/2AH=347*142/42=49274/42=6. 試分別判斷下列各組數據中哪個數據最大?哪個數據最???(1) A= , B=,C=(2) A=B , B=1001D, C=111H答:(1) A 最大, C 最小; (2) B最大, A 最小;1. 寫出下列各數的二進制原碼和補碼 ( 最后兩個用雙字節(jié) ): 0 ,96,- 128,-38H,127,105,879H,-32768答: 上述各數的原碼依次為: 00000000(), 01100000,

13、無, , 011 11111, 01101001, 0000,無 ;上述各數的補碼依次為: 00000000, 01100000, , , 01111111, 01101001, 0000, 000;2.分別列出下述10進制數的16進制數、非壓縮的BCD數、壓縮的BCD 數、 ASCII 數字串(用 16進制形式寫出 ):10, 64, 78, 81, 92, 100, 125, 255答:上述各數的 1 6進制數依次為: AH,40H,4EH,51H,5CH,64H,7DH,FFH;上述各數的非壓縮的 BCD數依次為:0100H,0604H,0708H,0801H,0902H, 010000

14、H, 010205H,020505H;上述各數的壓縮的BCD數依次為:10H,64H,78H,81H,92H,0100H,01 25H,0255H;上述各數的 ASCII 數字串依次為: 3130H,3634H,3738H,3831H,3932H,31 3030H,313235H, 323535H;3. 用 10 進制數寫出下列補碼表示的機器數的真值 :71H,1BH, 80H,F8 H,397DH,CF42H,9350H答: 上述補碼表示的各機器數的真值用 10 進制數分別表示為 : +113,+2 7,-128,-8,+14717,-20670,-278284. 若用一個字節(jié)來表示帶符號數

15、,判斷下列各運算在機內進行時是否 會產生溢出,寫出判斷過程。A. 5BH+32H; B. -08H-15H; C. -51H+(-3DH); D. 2DH+3CH答:A.產生溢出,5BH=01011011B其補碼表示的機器數為:01011011 32H=00110010B其補碼表示的機器數為 :00110010相加的結果為 :數值最高位向符號位進位 , 但符號位向前無進位 , 故產生溢出。B. 不產生溢出 , -08H=-00001000B 其補碼表示的機器數為 :-15H=-00010101B其補碼表示的機器數為 :相加的結果為 :1數值最高位向符號位進位 , 符號位同時也向前進位 , 故不

16、產生溢出 .C. 產生溢出 ,-51H=-01010001B 其補碼表示的機器數為 :-3DH=-00111101B其補碼表示的機器數為 :相加的結果為 :0 數值最高位向符號位無進位 , 但符號位向前進位 , 故產生溢出 .D. 不產生溢出,2DH=00101101B其補碼表示的機器數為:001011013CH=00111100B其補碼表示的機器數為 :00111100相加的結果為 :01101001 數值最高位向符號位無進位 , 符號位向前也無進位 , 故不產生溢出。5. 從鍵盤敲入一個大寫字母,如何轉換為與其相對應的小寫字母?從鍵盤敲入16進制數字符0F,如何轉換為其相對應的二進制數(0

17、000000000001111)?答:從鍵盤敲入一大寫字母后,將其ASCII碼加上20H,就轉換成了與其 相對應的小寫字母。從鍵盤敲入16進制數字符09后,將其ASCII碼值減去30H,就轉換 成了與其相對應的二進制數 .從鍵盤敲入16進制數字符AF后,將其ASCII碼值減去37H,就轉換 成了與其相對應的二進制數 .6. 詳細敘述總線緩沖器的作用。答: 總線緩沖器的作用主要是控制各路數據在總線上的交叉?zhèn)魉捅苊?相互沖突,當幾路數據都要向總線上傳送時,就通過各路的緩沖器來解 決,當一路傳送時,緩沖器使其它各路數據與總線斷開。7. 鎖存器和寄存器有什么不同 ?答: 鎖存器與寄存器都是用來暫存數據

18、的器件,在本質上沒有區(qū)別, 不過寄存器的輸出端平時不隨輸入端的變化而變化,只有在時鐘有效時才 將輸入端的數據送輸出端(打入寄存器),而鎖存器的輸出端平時總隨輸入 端變化而變化,只有當鎖存器信號到達時,才將輸出端的狀態(tài)鎖存起來, 使其不再隨輸入端的變化而變化。從功能上分成了 EU和BIU兩部分。這樣設計的優(yōu)點是什么?答:傳統計算機在執(zhí)行程序時,CPU總是相繼地完成取指令和執(zhí)行指令 的動作,即,指令的提取和執(zhí)行是串行進行的。 而8086CPU在功能上分成了 EU和BIU兩部分,BIU負責取指令,EU負責指令的執(zhí)行,它們之間既互相獨 立又互相配合,使得 8086可以在執(zhí)行指令的同時進行取指令的操作,

19、即實 現了取指令和執(zhí)行指令的并行工作,大大提高了CPUffi總線的利用率,從而提高了指令的處理速度。CPU中地址加法器的重要性體現在哪里?答:地址加法器是8086 CPU的總線接口單元中的一個器件,在 8086存 儲器分段組織方式中它是實現存儲器尋址的一個關鍵器件, 地址加法器將兩 個 16位寄存器中的邏輯地址移位相加,得到一個 20位的實際地址,把存儲 器尋址空間從64K擴大到1M極大地擴大了微型計算機的程序存儲空間, 從 而大大提高了程序運行效率。CPU中有哪些寄存器?分組說明用途。哪些寄存器用來指示存儲器單 元的偏移地址?答:8086 CPU中有 8 個通用寄存器 AX BX CX DX

20、 SP BP、SI、DI ; 兩個控制寄存器IP、FL;四個段寄存器CS DS SS ES 8個通用寄存器都 可以用來暫存參加運算的數據或中間結果,但又有各自的專門用途。例如, AX專用做累加器,某些指令指定用它存放操作數和運算結果;CX為計數寄存器,在某些指令中做計數器使用;DX為數據寄存器;BX為基址寄存器,B P為基址指針,SI為源變址寄存器,DI為目的變址寄存器,這4個寄存器在 數據尋址中用來存放段內偏移地址(有效地址)或段內偏移地址的一部分; SP為堆棧指示器,用來存放棧頂有效地址。兩個控制寄存器用來存放有關的 狀態(tài)信息和控制信息。例如,標志寄存器 FL 用來存放狀態(tài)標志和控制標志;

21、 而指令指針用來存放下一條要取指令的有效地址。 四個段寄存器用來存放段 地址。例如,CS寄存器用來存放代碼段的段地址;DS寄存器用來存放數據 段的段地址;SS寄存器用來存放堆棧段的段地址;ES寄存器用來存放擴展 段的段地址。系統中存儲器的邏輯地址由哪兩部分組成?物理地址由何器件生成? 如何生成?每個段的邏輯地址與寄存器之間有何對應關系?答:8086 系統中存儲器的邏輯地址由段地址 (段首址) 和段內偏移地址 (有效地址) 兩部分組成; 存儲單元的物理地址由地址加法器生成, 尋址時, CPU首先將段地址和段內偏移地址送入地址加法器,地址加法器將段地址左 移 4位并與段內偏移地址相加,得到一個 2

22、0 位的物理地址。數據段的段地 址在DS寄存器中,段內偏移地址可能在 BX BP、SI或DI寄存器中。代碼 段的段地址在CS寄存器中,段內偏移地址在IP寄存器中。堆棧段的段地址 在SS寄存器中,段內偏移地址在 SP寄存器中。擴展段的段地址在 ES寄存 器中,段內偏移地址可能在 BX、BP、SI 或 DI 寄存器中。5. 設CPL中各有關寄存器的當前狀況為:SS=0a8bH DS=17ceH CS=dc54H BX=394bH IP=2f39H SP=1200H, BX 給出的是某操作數的有效地址, 請分別寫出該操作數 下一條要取的指令及當前棧頂的邏輯地址和物理地址。答:該操作數的邏輯地址為 D

23、S BX=17CE 394BH物理地址=17CEH*10 H+394BH=1B62BHT條要取的指令的邏輯地址為 CS: IP=DC54 2F39H物 理地址=DC54H*10H+2F39H=DF479當前棧頂的邏輯地址 =SS SP=0A8B 120 0H,物理地址=0A8BH*10H+1200H=0BAB0H6. 若DS=157DH寸,某操作數的物理地址是 215FAH當DS=18DE時, 該操作數的物理地址是多少?答:該操作數的段內偏移地址 =該操作數的物理地址 -DS=215FAH-157D0H =BE2AH,故當 DS=18DE時,該操作數的物理地址=DS*10H+BE2AH=18D

24、E0H+BE 2AH=24C0AH7. 設 AX=2875H BX=34DFH SS=1307H SP=8H 依此執(zhí)行 PUSH AX P USH BX POP AX POP CXf棧頂指針變?yōu)槎嗌伲?AX=? BX=? CX=?答:當前棧頂指針=SS*10H+SP=13070H+8H=13078依此執(zhí)行 PUSH AX PUSH BX POP AX POP CXf 棧頂指針仍為 1307814 但 AX=34DFH BX=34DF H, CX=2875H。1.假定(BX)=637DH ( SI)=2A9BH位移量D=3237H試確定在以 下各種尋址方式下的有效地址是什么?( 1 )立即尋址(

25、 2)直接尋址(3)使用BX的寄存器尋址(4)使用BX的間接尋址(5)使用BX的寄存器相對尋址( 6)基址變址尋址( 7)相對基址變址尋址答: (1)立即數尋址的有效地址是當前 IP 的內容;(2) 直接尋址,若使用位移量 D=3237H進行,貝U有效地址為3237H;(3) 使用BX的寄存器尋址時,操作數在 BX寄存器中,因此無有效地 址;(4) 使用BX的間接尋址時,有效地址在 BX寄存器中,即有效地址=63 7DH;(5) 使用BX的寄存器相對尋址的有效地址 =(BX)+D=637DH+3237H=95 B4H;(6) 基址變址尋址的有效地址 =( BX) +(SI) =637DH+2A

26、9BH=8E1;8H(7) 相對基址變址尋址的有效地址 =(BX) +(SI) +D=C050H;2. 寫出把首地址為BLOCK勺字數組的第6個字送到DX寄存器的指令。 要求使用以下幾種尋址方式:( 1)寄存器間接尋址( 2)寄存器相對尋址( 3)基址變址尋址答:(1)使用寄存器間接尋址,把首地址為 BLOCK勺字數組的第6個 字送到DX寄存器的指令為:MOV BX , BLOCKADD BX , 12MOV DX , BX(2) 使用寄存器相對尋址,把首地址為 BLOCK勺字數組的第6個字送 到DX寄存器的指令為:MOV BX , BLOCKMOV DX , BX+12(3) 使用基址變址尋

27、址,把首地址為BLOCK勺字數組的第6個字送到D X寄存器的指令為:MOV BX , BLOCKMOV SI , 12MOV DX , BX+SI3. 現有(DS)=2000H, (BX)=0100H, (SI)=0002H , (20100H) = 12H, (20 101H)=34H, (20102H)=56H, (20103H)=78H, (21200H)=2AH, (21201H)=4CH, (21202H)=B7H, (21203H)=65H,試說明下列各條指令執(zhí)行完后 AX寄存器的 內容。1 ) MOV AX,2) MOV AX,3) MOV AX,4) MOV AX,5) MOV

28、 AX,6) MOV AX,7) MOV AX,1200HBX1200HBXBX+1100 BX+SI BX+SI+1100答:(1)指令MOV AX 1200H執(zhí)行完后AX寄存器的內容為1200H;(2) 指令MOV AX BX執(zhí)行完后AX寄存器的內容為0100H;(3) 指令 MOV AX 1200H是將從物理地址=(DS *10H+1200H=21200H開始的兩個單元內容送AX,執(zhí)行完后AX寄存器的內容為4C2AH(4) 指令 MOV AX BX是將從物理地址=(DS *10H+(BX)=20100H開始的兩個單元內容送AX,故執(zhí)行完后AX寄存器的內容為3412H;(5) 指令 MOV

29、 AX BX+1100是將從物理地址=(DS *10H+(BX)+1100H=21200H開始的兩個單元內容送AX,故執(zhí)行完后AX寄存器的內容為4 C2AH;(6) 指令 MOV AX,BX+SI 是將從物理地址 =(DS) *10H+(BX) +(SI) =20102H開始的兩個單元內容送 AX,故執(zhí)行完后AX寄存器的內容為7 856H;(7) 指令 MOV AX BX+SI+1100是將從物理地址=(DS *10H+( BX) +(SI) +1100H=21202K始的兩個單元內容送 AX,故執(zhí)行完后AX寄存 器的內容為 65B7H;4假設已知(DS)=2900H,(ES)=2100H,(

30、SS)=1500H,(SI)=00A0H,(BX)= 0 100H, (BP)=0010H,數據段中變量名 VAL的偏移地址值為0050H,試指出下 列源操作數字段的尋址方式是什么?其物理地址值是多少?1)MOV AX,0ABH( 2)MOV AX,BX3)MOV AX,100H( 4)MOV AX,VAL5)MOV AX,BX( 6)MOV AX,ES:BX7)MOV AX,BP( 8)MOV AX,SI9)MOV AX,BX+10( 10)MOV AX,VALBX11) MOV AX,BXSI12) MOV AX,BPSI答:(1)在指令MOV AX 0ABH中,源操作數字段的尋址方式是立

31、即 數尋址,其物理地址值 =( CS) *10H+( IP);(2)在指令 MOV AX, BX 中,源操作數字段的尋址方式是寄存器尋 址,操作數在BX中,無物理地址;(3)在指令 MOV AX, 100H 中,源操作數字段的尋址方式是直接 尋址,其物理地址值 =(DS) *10H+100 =29000H+100H=2910;0(4)在指令 MOV AX, VAL 中,源操作數字段的尋址方式是直接尋址, 其物理地址值 =(DS) *10H+50H =29000H+50H=29050;H(5)在指令 MOV AX, BX 中,源操作數字段的尋址方式是寄存器 間接尋址,其物理地址值 =(DS) *

32、10H +(BX) =29000H+100H=29100;H(6)在指令 MOV AX, ES: BX 中,源操作數字段的尋址方式是寄 存器間接尋址,其物理地址值 =(ES) *10H+(BX) =21000H+100H=21100;H(7)在指令 MOV AX, BP 中,源操作數字段的尋址方式是寄存器 間接尋址,其物理地址值 =(SS) *10H +(BP) =15000H+10H=15010;H(8)在指令 MOV AX, SI 中,源操作數字段的尋址方式是寄存器 間接尋址,其物理地址值 =(DS) *10H +(SI) =29000H+0A0H=290A0;H(9)在指令 MOV AX

33、, BX+10 中,源操作數字段的尋址方式是寄存 器相對尋址,其物理地址值 =(DS) *10H+(BX) +0AH= 29000H+100H+0AH =2 910AH;(10)在指令 MOV AX, VALBX 中,源操作數字段的尋址方式是寄 存器相對尋址,其物理地址值 =(DS) *10H+(BX) +50H= 29000H+100H+50H= 29150H;(11)在指令 MOV AX, BXSI 中,源操作數字段的尋址方式是基 址變址尋址,其物理地址值 =(DS) *10H+(BX) +(SI) =29000H+100H+0A0 H =291A0H;(12)在指令 MOV AX, BP

34、SI 中,源操作數字段的尋址方式是基 址變址尋址,其物理地址值 =(SS) *10H+(BP) +(SI) =15000H+10H+0A0H =150B0H5. 分別指出下列指令中的源操作數和目的操作數的尋址方式。1)MOVSI ,2002)MOVCX,DATASI3)ADDAX,BX+DI4)ANDAX,BX5)MOVSI, AX6)PUSHF答: (1)目的操作數字段的尋址方式是寄存器尋址,源操作數字段的 尋址方式是立即數尋址;(2)目的操作數的尋址方式是寄存器尋址,源操作數的尋址方式是寄 存器相對尋址;(3)目的操作數的尋址方式是寄存器尋址,源操作數的尋址方式是基 址變址尋址;(4)目的

35、操作數的尋址方式是寄存器尋址,源操作數的尋址方式也是 寄存器尋址;(5)目的操作數的尋址方式是寄存器間接尋址,源操作數的尋址方式 是寄存器尋址;(6)目的操作數的尋址方式是寄存器間接尋址,源操作數的尋址方式 是寄存器尋址;6. 試述指令 MOV AX 2010H和 MOV AX DS:2010H的區(qū)別。答:指令MOV AX 2010H是將立即數2010H送AX寄存器,而指令MOVAX, DS:2010H是將DS段有效地址為2010H的兩個單元的內容送 AX7. 寫出以下指令中內存操作數的所在地址。(1)MOV AL, BX+5(2)MOV BP+5, AX(3)INC BYTE PTR SI+

36、3(4)MOV D,L ES:BX+DI(5)MOV BX, BX+SI+2答:(1)指令MOV AL BX+5中內存操作數的所在地址=(DS *10H+ ( BX)+5;(2)指令MOV BP+5, AX中內存操作數的所在地址 =(SS *10H+( B P)+5 和( SS)*10H+(BP)+6;(3)指令INC BYTE PTRSI+3中內存操作數的所在地址 =(DS +(S I )+3;(4)指令MOV DL ES:BX+DI中內存操作數的所在地址 =(ES) *1 0H+( BX)+( DI );(5)指令 MOV BX BX+SI+2中內存操作數的所在地址 =(DS *10H +

37、(BX +(SI +2和( DS *10H+(BX +(SI +3;8. 判斷下列指令書寫是否正確, 如有錯誤, 指出錯在何處并用正確的程 序段(一條或多條指令 實現原錯誤指令 (8) 、(13) 除外)期望實現的操作。1)MOV AL,BX2)MOV AL,SL3)INC BX4)MOV 5,AL5)MOV BX,SI6)MOV BL,F5H7)MOV D,X 2000H8)POP CS9) MOV ES,3278H10) PUSH AL11) POP BX12) MOV 1A8H,23DH13) PUSH IP14) MOV AX,23DH15) SHL AX,516) MUL AX,BX

38、答:(1) MOV AL,BX錯,源操作數為字類型,目的操作數為字節(jié)類型, 二者不一致。應改為: MOV AX,BX或 MOV AL,BL ;2) MOV AL,SL 錯, SI 寄存器不能分為高 8 位和低 8 位使用,即沒有SL 寄存器。應改為:MOV AX,SI(3) INC BX 錯,未指定操作數的類型。應改為: INC BYTE PTR B X(4) MOV 5,AL 錯,目的操作數使用了立即數,在指令中一般不允許。應改為: MOV DS:5,AL(5) MOV BX,SI 錯,源操作數和目的操作數均為內存單元,不允 許。應改為: MOV AX,SIMOV BX,AX(6) MOV

39、BL,F5H錯,源操作數錯,以AF開頭的數字前應加0。應改為:MOV BL,0F5H(7)MOV DX,2000H正確。(8)POP CS錯,不能將棧頂數據彈至 CS中。(9)MOV ES 3278H錯,立即數不能直接送 ES寄存器。應改為: MOV AX,3278HMOV ES,AX(10)PUSH AL錯,棧操作不能按字節(jié)進行。應改為:PUSH AX( 11 ) POP BX 正確。(12) MOV 1A8H,23DH 錯,源操作數是立即數,目的操作數必須使用 寄存器指出。應改為:MOV BX , 1A8HMOV BX,23DH(13) PUSH IP 錯,不能用 IP 寄存器做源操作數。

40、(14) MOV AX,23DH錯,不能用AX寄存器間接尋址。應改為:MOV B X, AXMOV BX, 23DH(15) SHL AX,5 錯,不能用大于己于 1 的立即數指出移位位數。應改為:MOV C,L 5SHL AX, CL(16) MUL AX,BX錯,目的操作數AX是隱含的,不能在指令中寫出。 應改為: MUL BX9. 設堆棧指針SP的初值為2000H AX=3000H BX=5000H試問:(1) 執(zhí)行指令 PUSH AX后 (SP)= ?(2) 再執(zhí)行 PUSH BX及 POP AX后 (SP)= ? (AX)= ? (BX)= ?答:(1)執(zhí)行指令 PUSH AX后 (

41、SP)=2000H-2=1FFEH;(2) 再執(zhí)行 PUSH BX及 POP AX后 (SP)=1FFEH, (AX)=5000H, (BX)= 5000H10. 要想完成把2000H送1000H中,用指令:MOV 1000H,2000H 是否正確?如果不正確,應用什么方法?答:把2000H送1000H中,用指令 MOV 1000H,2000H不正確, 應改為: MOV AX,2000H MOV 1000H,AX11. 假如想從200中減去AL中的內容,用SUB 200, AL是否正確?如果 不正確,應用什么方法?答:想從200中減去AL中的內容,用SUB 200, AL不正確,應改為:MOV

42、 BL,200 SUB BL,AL12分別寫出實現如下功能的程序段(1) 雙字減法(被減數7B1D2A79H減數53E2345FH 。(2) 使用移位指令實現一個字乘 18 的運算。(3) 使用移位指令實現一個字除以 10的運算。(4) 將AX中間8位,BX低四位,DX高四位拼成一個新字。(5) 將數據段中以BX為偏移地址的連續(xù)四個單元的內容顛倒過來 將BX中的四位壓縮BCD數用非壓縮BCD數形式順序放在AL、BL、C L、DL中。MOV AX,2A79H ;被減數的低位字送 AXSUB AX,345FH ;低位字相減,結果送 AXMOV BX,7B1DH被減數的高位字送 BXSBB BX,

43、53E2H 果送 BX;高位字相減處并減去低位字相減產生的借位,結(2) 使用移位指令實現一個字乘 18 的程序段是:MOV AX,05F7H;被乘數送 AXSHL AX,1;被乘數乘以2,結果在AX中MOV BX,AX;被乘數乘以 2 的結果暫存到 BXMOV CL,3;設置移位位數 3SHL AX,CL;被乘數冉乘以8 (共乘以16),結果在AX中ADD AX,BX;被乘數再乘以18,結果在AX中(3)使用移位指令實現一個字除以 10的運算,必須將 X/10 拆分成多項 的和,而每一項都應是非的某次幕的倒數。利用等比級數的前N項和公式,可求出 A0=X/8,公比 Q=-1/4,故 X/10

44、=X/8-X/32+X/128-X/512+.,所求的程序段是:MOV AX,FE00H;被除數送 AXMOV CL,3;設置移位位數 3SHR AX,CL;被乘數除以8,結果在AX中MOV BX,AX;被乘數除以 8的結果暫存到 BXMOV CL,2;設置移位位數 2SHR AX,CL;被乘數除以4 (累計除32),結果在AX中SUB BX,AX;被除數/8-被除數/32,結果在BX中MOV CL,2;設置移位位數 2SHR AX,CL;被乘數除以4 (累計除128),結果在AX中ADD BX,AX;被除數/8-被除數/32+被除數/128,結果在BX中MOV CL,2;設置移位位數 2SH

45、R AX,CL;被乘數除以4 (累計除512),結果在AX中SUB BX,AX結果在BX中;被除數/8- 被除數/32+被除數/128-被除數/512,(4) 將AX中間8位,BX低四位,AND DX,0F000HAND AX,0FF0H變AND BX,0FHADD AX,BXADD AX,DX(5) 將數據段中以 序段是:MOV AL,BX ;數據段中XCHG AL,BX+3 ;數據段中 內容交換MOV BX,AL;數據段中偏移地址的字單元MOV AL,BX+1;數據段中XCHG AL,BX+2 ;數據段中 內容交換MOV BX+1,AL ;數據段中 為偏移地址的字單元(6)BX為偏移地址的

46、字單元內容送 AXBX+3為偏移地址的字單元內容與 AX的BX+3為偏移地址的字單元內容送BX為BX+1為偏移地址的字單元內容送 AXBX+2為偏移地址的字單元內容與 AX的BX+2為偏移地址的字單元內容送 BX+1將BX中的四位壓縮BCD數用非壓縮BCD數形式順序放在AL、BL、CDX高四位拼成一個新字的程序段是:;將DX的低12位清零,高4位不變;將AX的低4位清零,高4位清零,中間8位不;將BX的高12位清零,低4位不變;按要求組成一個新字,結果放在 AX中。BX為偏移地址的連續(xù)四個單元的內容顛倒過來的程L、DL中的程序段是:MOV DL,BL;四位壓縮BCD數的低位字節(jié)送DLAND D

47、L,OFH ; DL的高4位清零,得四位非壓縮BCD數的最低位,放 入DL中MOV CL,4 ;設置移位位數 4SHR BX,CL ; BX中的數據邏輯右移4位,使四位壓縮BCD數的次低 位位于BL的低4位MOV CH,BL;將BL的內容暫存到CH中保留AND CH,OFH CH中;CH的高4位清零,得四位非壓縮BCD數的次低位,放MOV CL,4;設置移位位數 4SHR BX,CL ; BX中的數據邏輯右移4位,使四位壓縮BCD數的次高 位位于BL的低4位MOV AL,BL;將BL的內容暫存到AL中保留AND BL,OFH ; BL的高4位清零,得四位非壓縮BCD數的次高位,放 BL中MOV

48、 CL,4 ;設置移位位數 4SHR AL,CL ;使四位壓縮BCD數的最高位位于AL的低4位,得四位 非壓縮BCD數的次高;位,放入BL中MOV CL,CH ;將四位非壓縮BCD數的次低位移入CL中1.假設OP1 OP2是已經用DB定義的變量,W_0P3和W_OP是已經用D W定義的變量,判斷下列指令書寫是否正確?如有錯誤,指出錯在何處?并 寫出正確的指令(或程序段)實現原錯誤指令期望實現的操作 (19) 、(2O) 不改 ) 。(1) PUSH OP1(2) POP W_OP4(3) MOV AX, WORD PTR SIDI(4) MOV AX,WORD PTR ES:BX(5) MOV

49、 BYTE PTR BX, 1OOO(6) MOV BX, OFFSET SI+2OOH(7) MOV OP2,BX(8) CMP HIGH W_OP3, 25(9) CMP OP1, OP2(10) CMP AX, OP2(11) MOV W_OP3BX+4*3DI, SP(12) ADD W_OP3, W_OP4(13) MOV AX, W_OP3DX(14) MOV OP1, LOW DS(15) MOV SP, OP2BXSI(16) MOV AX, W_OP3+W_OP4(17) MOV AX,W_OP3-W_OP4+1OO(18) SUB AL, W_OP3+7(19) MOV A

50、X,BX SHL 2(20) MOV BX,W_OP3 AND 8FD7H答:1. (1)PUSH OP1錯,0P1為字節(jié)類型,棧操作不能按字節(jié)進行,應 改為:PUSH WORD PTR OP1(2) POP W_OP4 正確。(3) MOV AX, WORD PTR SIDI 錯,源操作數尋址方式有問題。應改為 : MOV BX, SIMOV AX, WORD PTR BXDI(4) MOV AX,WORD PTR ES:B錯,若源操作數為寄存器尋址是不能加段說 明及屬性修改的。 顯然, 原意應為寄存器間接尋址 , 故應改為 : MOV AX,WORD PTR ES:BX(5) MOV BY

51、TE PTR BX, 1000 錯,源操作數為字類型,目的操作數為 字節(jié)類型,二者不一致。應改為 : MOV WORD PTR BX, 1000(6) MOV BX, OFFSET SI+200H錯,OFFSET!算應在匯編時完成,但S I+200H 在執(zhí)行指令時才可獲得。 應改為 : LEA BX,SI+200H(7) MOV OP2,BX 錯,源操作數和目的操作數均為內存單元,不允許。應改為 : MOV AL, BXMOV OP2, AL(8) CMP HIGH W_OP3, 25錯,目的操作數中使用 HIGH來分離存儲器操作 數,這是不允許的。應改為 : CMP BYTE PTR W_O

52、P3+1,25(9) CMP OP1, OP2錯,源操作數和目的操作數均為內存單元,不允許。應改為 : MOV AL, OP2CMP AL, OP1(10) CMP AX, OP2錯,源操作數為字節(jié)類型,目的操作數為字類型,二 者不一致。應改為 : CMP AX, WORD PTR OP2(11) MOV W_OP3BX+4*3DI, SP 正確。(12) ADD W_OP3, W_OP錯,源操作數和目的操作數均為內存單元, 不允 許。應改為 : MOV AX, W_OP4ADD W_OP3, AX(13) M0V AX, W_0P3DX錯,不能用DX寄存器間接尋址。應改為: MOV BX,

53、DX M0V AX, W_0P3BX(14) M0V 0P1, LOW DS昔,源操作數中使用LOWE分離寄存器操作數, 這是不允許的。應改為: M0V W0RD PTR 0P1,DS(15) M0V SP, 0P2BXSI 錯,源操作數為字節(jié)類型,目的操作數為字 類型,二者不一致。應改為 :M0V SP, W0RD PTR 0P2BXSI(16) MOV AX, W_0P3+W_ 0錯4,兩個標識符相加無意義。應改為:MOV AX, W_0P1ADDAX, W_0P2(17) MOV AX,W_OP3-W_OP4+1正確,源操作數為兩個標識符(地址)相 減再加一數,匯編時得到一個數。(18)

54、 SUB AL, W_OP3+7錯,兩個操作數類型不一致。應改為:SUB AL, BYTE PTR W_OP3+7(19) MOV AX,BX SHL 2錯,SHL只能對常量進行運算,左邊不能使用寄存 器(20) MOV BX,W_OP3 AND 8FD7S,AND只能對常量進行運算,左邊不能 使用變量4. 設已定義數據段DATA SEGMENTVAR2 DW 10H, 7889HVAR5 DB 20H, 0ADRR DW VAR2 , VAR5DATA ENDS為使ADRF字存儲單元中存放內容為“ 0010H, ADRR 2字存儲單元中 存放內容為“ 0020H,上述省略號位置應分別填寫一條什么語句?說明理 由。答:為使ADRF字存儲單元中存放內容為“ 0010H, ADRR 2字存儲單 元中存放內容為“ 0020H,上述省略號位置應分別填寫 ORG 10H和ORG 2 0H, 或者分別填寫語句VAR1 DB 10H DUP(?) 和 VAR3 6 DUP(?)5. 下面的數據段中,有數據為 4100H的字存儲單元有幾個?它們的 偏移量分別是多少?DATA SEGMENTDA1 DB 0ORG 41HDA2 DB 0, A, 41H, 0, 41HADR DW DA1 , DA2DATA ENDS答:給出的數據段中,有數據 410

溫馨提示

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

評論

0/150

提交評論