微計算機原理課后習題答案潘名蓮馬爭丁慶生編著_第1頁
微計算機原理課后習題答案潘名蓮馬爭丁慶生編著_第2頁
微計算機原理課后習題答案潘名蓮馬爭丁慶生編著_第3頁
微計算機原理課后習題答案潘名蓮馬爭丁慶生編著_第4頁
微計算機原理課后習題答案潘名蓮馬爭丁慶生編著_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第3章 80x86 指令系統(tǒng)3-1 指令由 操作碼 字段和 操作數(shù) 字段組成。8086的指令長度在16字節(jié) 范圍。3-2 分別指出下列指令中源操作數(shù)和目的操作數(shù)的尋址方式。若是存儲器尋址,使用表達式表示出EA=? PA=?(1) MOV SI, 2100H (2) MOV CX, DISPBX (3) MOV SI, AX (4) ADC ZX, BXSI (5) AND AX, DX (6) MOV AX, BX+10H(7) MOV AX, ES:BX (8)MOV AX, BX+SI+20H (9) MOV BP, CX(10) PUSH DS解:源操作數(shù)尋址目的操作數(shù)尋址EAPA1)

2、MOV SI, 2100H 立即數(shù)尋址寄存器(2) MOV CX, DISPBX寄存器相對尋址寄存器BX+SISP(DS)*16+(BX+DISP)(3) MOV SI, AX 寄存器尋址寄存器間接SI(DS)*16+(SI)(4) ADC ZX, BXSI 基址變址尋址寄存器BX+SI(DS)*16+(BX)+(SI) (5) AND AX, DX 寄存器尋址寄存器(6) MOV AX, BX+10H寄存器相對尋址寄存器BX+DISP(DS)*16+(BX)+10H(7) MOV AX, ES:BX帶段超越寄存器尋址寄存器BX(ES)*16+(BX)(8)MOV AX, BX+SI+20H相

3、對基址變址尋址寄存器BX+SI+20H(DS)*16+(BX)+(SI)+20H(9) MOV BP, CX寄存器尋址寄存器間接BP(SS)*16+(BP)(10) PUSH DS固定尋址寄存器SP(SS)*16+(SP)3-3 已知8086中一些寄存器的內容和一些存儲器單元的內容如圖3-1所示,試指出下列各條指令執(zhí)行后,AX中的內容。(1) MOV AX, 2010H (2) MOV AX, BX (3) MOV AX, 1200H(4) MOV AX, BX (5) MOV AX, 1100HBX (6) MOV AX, BXSI(7) MOV AX, 1100HBX+SI (8) MOV

4、LEA AX, SI 解:(1)(AX)=2010H (2)(AX)=0100H (3)(AX)=4C2AH (4)(AX)=3412H (5)(AX)=4C2AH (6)(AX)=7856H (7)(AX)=65B7H (8)(AX)=0002H M30100H12H30101H34H30102H56H30103H78H31200H2AH31201H4CH31202HB7H31203H65HCPUBX0100HSI0002HDS3000H 圖3-1 3-4 已知(AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH,(PORT+1)=45H,執(zhí)行下列指令后,指出結果等

5、于多少?解:(1)OUT DX, AL (0380H)=40H(2) OUT DX, AX (380H)=40H (381h)=20H(3) IN AL, PORT (AL)=1FH (4) IN AX, 80H (AX)=451FH(5) OUT PORT1, AL (PORT1)=40H(6) OUT PORT1, AX (PORT1)=2040H3-5 已知:(SS)=0A2F0H,(SP)=00C0H,(AX)=8B31H,(CX)=0F213,試畫出下列指令執(zhí)行到位置1和位置2時堆棧區(qū)和SP指針內容的變化示意圖。圖中應標出存儲單元的實際地址PA。PUSH AXPUSH CX ;位置1

6、POPF ;位置2解:已知(SS)=0A2F0H,指令順序依次編號為、,示意圖如圖所示: (SS)=0A2F0H 0A2FBCH13H(SP)-4=00BCH (位置1) F2H0A2FBEH31H(SP)-2=00BEH (SP)+2=00BCH +0002H=00BEH (位置2)8BH0A2FC0H(SP)=00C0H 3-6 識別下列指令的正確性,對錯誤的指令,說明出錯的原因。(1) MOV DS, 100(2) MOV 1000H, 23H(3) MOV 1000H,2000H(4) MOV DATA, 1133H(5) MOV 1020H, DX(6) MOV AX, 0100H+

7、BX+BP(7) MOV CS, AX(8) PUSH AL(9) PUSH WORD PTRSI(10) IN AL, 80H(11) OUT CX, AL(12) IN AX, 380H(13) MOV CL, 3300H(14) MOV AX, 2100HBP(15) MOV DS, ES(16) MOV IP, 2000H(17) PUSH CS(18) POP CS(19) LDS CS, BX(20) MOV GAMMA, CS解:(1) ×,不能對段寄存器送立即數(shù)(2) ×,存儲單元類型不正確(3) ×,MOV 不能實現(xiàn)兩個存儲單元間 直接傳送(4)

8、 ×,段名不能作目的操作數(shù)(5) ×,立即數(shù)不能作目的操作數(shù)(6) ×,基址寄存器BX和BP只能使用其 中一個(7) ×,CS不能用作目的操作數(shù)(8) ×,堆棧操作作為字操作AL應改為 AX(9) (10) ×,80H為輸入端口號不加方括號(11) ×,應輸出到端口而不是通用寄存器(12) ×,用DX做間址寄存器380H應存 DX(13) ×,類型不匹配(14) (15) ×,兩個段寄存器間不能直接傳送(16) ×,IP不能直接用作目的操作數(shù)(17) (18) ×,CS不能做

9、目的操作數(shù)(19) ×,目的操作數(shù)應是通用寄存器而不 能是段寄存器CS(20) ×,符號名不能作為目的操作數(shù)3-7 已知存儲器數(shù)據(jù)段中的數(shù)據(jù)如圖3-3所示。閱讀下列的兩個程序段后,回答:1. 每個程序段的運行結果是什么?2. 兩個程序段各占多少字節(jié)的內容,執(zhí)行時間是多少?(1) LES SI, NUM1 MOV AX, SI ADD AX, 4SI MOV 8SI, AX ADD SI, 2 MOV AX, SI ADC AX, 4SI MOV 8SI, AX(2) MOV AX, NUM1 ADD AX, NUM2 MOV SUM, AX MOV AX, NUM1+2 A

10、DC AX, NUM2+2 MOV SUM+2, AX解:1、運行結果如下:(1) 0AC6863A0H (2) 0AC6863A02、 時鐘周期 字節(jié)數(shù) (1) LES SI, NUM1 2+EA 24 MOV AX, SI 10 3 ADD AX, 4SI 9+EA 24MNUM148HDS41H16H28HNUM258H22H52H84HSUM MOV 8SI, AX 10 3 ADD SI, 2 4 34 MOV AX, SI 10 3 ADC AX, 4SI 9+EA 24 MOV 8SI, AX 10 24 (2) MOV AX, NUM1 10 3 ADD AX, NUM2 9+

11、EA 24 MOV SUM, AX 9+EA 24 MOV AX, NUM1+2 9+EA 24 ADC AX, NUM2+2 9+EA 24 MOV SUM+2, AX 9+EA 24 圖3-33-8 已知數(shù)據(jù)如圖3-3所示,數(shù)據(jù)的低位在前,按下列要求編寫程序段:1. 完成NUM1和單元NUM2兩個字數(shù)據(jù)相加,和存放在NUM1中。2. 完成NUM1單元開始的連續(xù)4個字節(jié)數(shù)據(jù)相加,和不超過一字節(jié),存放SUM單元。3. 完成NUM1單元開始的連續(xù)8個字節(jié)數(shù)據(jù)相加,和16位數(shù),放在SUM和SUM+1兩個單元(用循環(huán))。4. 完成NUM1和NUM2的雙倍精度字數(shù)據(jù)相加,和放在NUM2開始的字單元中。

12、解:1、 CLC LEA SI, NUM1 MOV AX, WORD PTR SI ADD AX, WORD PTR NUM2 MOV WORD PTR SI, AX MOV AX, WORD PTR SI+2 ADC AX, WORD PTR NUM2+2 MOV WORD PTR SI+2, AX HLT2、 LEA SI, NUM1 MOV AL, SI ADD AL, 1SI ADD AL, 2SI ADD AL, 3SI MOV SUM, AL HLT 3、 CLC CLD LEA SI, NUM1 MOV AL, SI MOV AH, 0 MOV CX, 7 XOR BH, BHA

13、GA: MOV BL, 1SI ADC AX, BX INC SI DEC CX JNZ AGA MOV SUM, AX HLT4、 LEA SI, NUM1 LEA DI, NUM2 MOV AX, SI ADD AX, DI MOV DI, AX MOV AX, 2SI ADC AX, 2DI MOV 2DI, AX3-9 已知的BCD數(shù)如圖3-3所示,低位在前,按下列要求編寫計算BCD數(shù)據(jù)(為組合型BCD)的程序段。1. 完成從NUM1單元開始的連續(xù)8個組合型BCD數(shù)相加,和(超過一字節(jié))放在SUM和SUM+1兩個單元中。2. 完成NUM1單元和NUM2單元的兩個BCD數(shù)相減,其差存入S

14、UM單元,差=?,(CF)=?解:1、 CLC CLD LEA SI, NUM1 MOV CX, 7 MOV AH, 0 MOV AL, SI AGA: INC SI ADC AL,SI DAA LOOP AGA MOV SUM, AL MOV SUM+1, AH HLT2、 CLCMOV AH, 0MOV AL, NUM1SUB AL, NUM2DASMOV SUM, AL差=0F0H=-10H, CF=13-10 寫出下列程序段完成的數(shù)學計算公式,并畫出數(shù)據(jù)存放的示意圖。XX+2YY+2ZZ+2WW+2MOV AX, XMOV DX, X+2ADD AX, YADC DX, Y+2SUB

15、AX, ZSBB DX, Z+2MOV W, AXMOV W+2, DX解:W=X+Y-Z,數(shù)據(jù)存放如圖所示:3-11 已知數(shù)據(jù)如圖3-3所示,低位在前,按下列要求編寫程序段1. NUM1和NUM2兩個數(shù)據(jù)相乘(均為無符號數(shù)),乘積放在SUM開始的單元。2. NUM1和NUM2兩個字數(shù)據(jù)相乘(均為無符號數(shù)),乘積放在SUM開始的單元。3. NUM1單元的字節(jié)數(shù)據(jù)除以13(均為無符號數(shù)),商和余數(shù)依次放入SUM開始的兩個字節(jié)單元。4. NUM1單元的字節(jié)數(shù)據(jù)除以NUM2字單元的字,商和余數(shù)依次放入SUM開始的兩個字節(jié)單元。解:1. 為32位×32位,極為64位2. MOV AX, NU

16、M1 IMUL NUM2 ;積在(DX) (AX) 中 MOV SUM, AX MOV SUM+2, DX 3. MOV AL, NUM1 CBW MOV CL, 0DH DIV CL MOV SUM, AL MOV SUM+1, AH4. MOV AX, NUM1 CWD IDIV NUM2 MOV SUM, AX MOV SUM+2, DX3-12 (L略)3-13 已知(AL)=0C4H,DATA單元中的內容為5AH,寫出下列每條指令單獨執(zhí)行后的結果。1. AND AL, DATA2. OR AL,DATA3. XOR AL, DATA4. NOT DATA 5. AND AL, 0FH

17、6. OR AL, 01H7. XOR AL, 0FFH8. TEST AL, 80H解;1. (AL)=01000000B=40H2. (AL)=0DEH3. (AL)=10011110B=9EH4. (DATA)=0A5H5. (AL)=04H6. (AL)=0C5H7. (AL)=3BH8. (AL)=0C4H,OF=0,CF=0 3-14 用移位循環(huán)指令,編寫完成以下功能的程序段(結果放回原處)1. 將無符號數(shù)83D分別乘2和處2.2. 將帶符號數(shù)-47D分別乘2和除2.3. 將圖3-3中NUM1雙字乘2和除2.4. 將圖3-3中從NUM1開始的4個字乘2.解:1. MOV AL, 5

18、3H SHL AL, 1 MOV AL, 53H SHR AL, 12. MOV AL, 0D1H SAL AL, 1 MOV AL, 0D1H SAR AL, 13. MOV AX, NUM1 MOV DX,NUM1+2 SHL AX, 1 RCL DX, 1 MOV AX, NUM1 MOV DX, NUM1+2 SAR DX, 1 RCR AX, 14. SAL NUM1, 1RCL NUM1+2, 1RCL NUM1+4, 1RCL NUM1+6, 13-15 編寫完成以下功能的程序段,并指出運行后,其標志CF、ZF、SF和OF的狀態(tài)是什么?1. BCD數(shù) 58322. 無符號數(shù) 3A

19、H3AH3. 帶符號數(shù) 79(57)4. 帶符號數(shù)32+(42)解:1. MOV AL, 58HSUB AL, 32HDASCF=0,ZF=0,SF=0,OF=02. MOV AL, 3AH SUB AL, 3AH CF=0,ZF=1,SF=0,OF=03. 已知X=79D,Y=57D 則【X】補=01001111,【Y】補=11000111 所以X補Y補=X補+-Y補=10001000 MOV AL, 79 MOV BL, -57 SUB AL, BLCF=0,ZF=0,SF=1,OF=14. MOV AL, 0F3H MOV BL, 2AH ADD AL, BL或者 MOV AL, 0F3

20、H ADD AL, 2AHCF=0,ZF=0,SF=0,OF=03-16 用循環(huán)移位指令實現(xiàn)下列功能,設(AX)=0C3H1. 設(CL)=8,移位前、后AX內容不變2. 設(CL)=9,移位前、后AX內容不變3. 將AX中高4位和低4位交換位置4. 將AX中高4位放到低4位上,而高4位置0解:1. MOV CL, 8 ROL AL, CL(或者ROR AL, CL) 2. MOV CL, 9 RCL AL,CL(或者RCR AL, CL) 3. MOV BX, AX AND AX, 0FF0H XCHG BH, BL MOV CL, 4 ROL BH, CL ROL BL, CL AND B

21、H,0F0H AND BL, 0FH OR AX, BX 4. 本小題可以多種解法:解1:5. MOV BX, AX AND AX, 0FF0H XCHG BH, BL MOV CL, 4 ROL BH, CL ROL BL, CL AND BH,0 AND BL, 0FH OR AX, BX解2:MOV BX, AXXCHG AH, ALMOV CL, 4 ROR AX, CLSHR AH, CLAND AL, 0FHAND BL, 0FOHOR AL, BL3-17 寫出下列程序段執(zhí)行后的結果:(AL)=?(DL)=?完成的是什么功能?MOV CL,4MOV AL,87MOV DL, AL

22、MOV AL,0FHOR AL,30HSHR DL,CLOR DL,30H解:完成與、或、移位等邏輯運算,運算結果:(AL)=37H;(DL)=35H3-18 用乘法指令和用傳送、移位、相加指令分別實現(xiàn)Y=10X的運算,設X=12H,分別編寫這兩個程序段。解:(1) MOV AL, X MOV CL, 10 NUL CL(2) MOV AL, X SAL AL,1 ;(AL)=2*X MOV BL, AL ;(BL)=X*2 SAL AL, 1 ;(AL)=4*X SAL AL, 1 ;(AL)=8*X ADD AL, BL ;(AL)=8*X+2*X=10*X3-19 寫出下面指令序列完成的

23、數(shù)學計算是什么?MOV CL, 3SHL AX, CLSHL BL, CLSHL CX, CLSHL DH, CL解:將一多精度數(shù)(6字節(jié))乘以83-20 寫出下列能代替重復串操作指令完成同樣功能的指令序列。(1) REP MOVSW(2) REP CMPSB(3) REP SCASB(4) REP LODSW(5) REP STOSB解:(1) LEA SI, AREA1 LEA DI, AREA2 MOV CX, N CLDAGA: MOV AX, DS:SI MOV ES:DI, AX INC SI INC SIINC DIINC DIDEC CXJNZ AGARET(2) LEA SI

24、, VAR1 LEA DI, VAR2 MOV CX, N CLDNEXT: CMPSB JNZ FIN LOOP NEXT RET(3) MOV DI, OFFSET COMMAND MOV AL, MOV CX, N CLDNEXT: SCASB JZ FOUND LOOP NEXT RET(4) MOV SI, OFFSET BUF MOV CX, N CLDNEXT: LODSW MOV RES, AX LOOP NEXT RET(5) MOV DI,OFFSET BUF MOV CX, N CLDNEXT: STOSB DEC CX JNZ NEXT RET 3-21 欲將數(shù)據(jù)段中自

25、AREA1中的100個字數(shù)據(jù)搬到附加段中以AREA2開始的區(qū)中,用下面的3種傳送指令編寫程序段:1. 用MOV指令;2. 用基本串傳送指令;3. 用重復串傳送指令解: 1. LEA SI, AREA1 LEA DI, AREA2 MOV CX, 100 CLDAGAIN: MOV AX, SI MOV ES:DI, AX INC SI INC SI INC DI INC DI DEC CX JNZ AGAIN RET2. MOV SI, OFFSET AREA1 MOV DI, OFFSET AREA2 MOV CX, 100 CLDAGAIN: MOVS AREA2, AREA1 DEC C

26、X JNZ AGAIN RET3. MOV SI, OFFSET AREA1 MOV DI, OFFSET AREAA2 CLD MOV CX, 100 REP MOVSB RET3-22 假定在數(shù)據(jù)段中已知字符串和未知字符串的定義如下:STRING1 DB MESSAGE AND PROCCESSSTRING2 DB 20 DUP(?)用串操作指令編寫完成下列功能的程序段(設DS和ES重疊);1. 從左到右把STRING1中的字符串搬到STRING2中;2. 從右到左把STRING1中的字符串搬到STRING2中;3. 搜索STRING1字符串中是否有空格。如有,記下第一個空格的地址,并放入

27、BX中;4. 比較STRING1和STRING2字符串是否相同。解:1. MOV SI, OFFSET STRING1 MOV DI, OFFSET STRING2 MOV CX, 20 ;共20個字符 CLD ;從左到右就是增址方向,設置DF0 REP MOVS STRING2, STRING12. MOV SI, OFFSET STRING1+13H MOV DI, OFFSET STRING2+13H MOV CX, 20 STD ;從右到左為減址方向,設置DF0 REP MOVS STRING2+13H, STRING1+13H3. MOV DI, OFFSET STRING1 MOV

28、 CX, 20 MOV AL, 20H ;空格字符的ASCII碼 CLD REPNZ SCASB JZ FOUND MOV DI, 0 JMP DONEFOUND; DEC DI ;因SCASB的功能是:(1)(AL)DI (2) DIDI+1 MOV BX, DIDENE: HLT 4. MOV SI, OFFSET STRING1 MOV DI, OFFSET STRING2 MOV CX, 20 CLD REPZ CMPSB JNZ UMMAT MOV AL, 0 JMP OUTPUTUMMAT: MOV AL, 0FFHOUTPUT: MOV RESULT, AL RET 3-23 下

29、面兩條短轉移指令的轉移地址ADDR1和ADDR2分別是多少(用十六進制表示)?1. 0220 EB 0A JMP ADDR12. 0230 EB F7 JMP ADDR2解:1. e為當前IP與目的地址的距離。 已知位移量e的計算公式:e=目的地址(IP源+2),即 0AH=目的地址(IP源+23)=ADDR10222H 所以,ADDR1=0AH+0222H=022CH(正向轉移)2. e=目的地址(IP源+2) 0F7H=ADDR20232H 所以,ADDR2=0F7H+0232H=0229H(負向轉移) 3-24 NEAR JMP, SHORT JMP,LOOP和條件轉移指令的轉移范圍是多

30、少?解:(1) NEAR JMP:目標地址距JMP指令+3276732768字節(jié)范圍以內。(2) SHORT JMP:目標地址距JMP指令+127128字節(jié)范圍以內。 (3) LOOP:所轉去的目標地址在+127128字節(jié)范圍以內,為LOOP SHORT_LABEL(4) 條件轉移指令:目的地址OPRD為近標號,即轉向的目標地址必須在轉移指令的+127128字節(jié)范圍以內。2-25 設AX和CX中的內容為無符號數(shù),BX和DX中的內容為帶符號數(shù),試用CMP指令和條件轉移指令實現(xiàn)以下判斷:1. 若(AX)超過(CX),則轉至BIGER。 2. 若(BX)>(DX),則轉至BIGE。3. 若(CX)低于(AX),則轉至LESS。 4. 若(DX)>(BX),則轉至LESS。5. 若(AX)=(CX),則轉至EQUAL。解:1. CMP AX, CX JA BIGER2. CMP BX, DX JG BIGER3. CMP CX, AX JB LESS4. CMP DX, BX JL LESS5. CMP AX, CX JZ EQUAL3-26 (略)3-27 試編寫一個程序段,能完成下列數(shù)學表達式的功能 解1: MOV AL, X CMP AL,-1 JLE ANS1 CMP A

溫馨提示

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

評論

0/150

提交評論