部分习题参考答案 习题 1.计算机由五大部件组成,采用二进制,存储程序并用程序控制(参见5.1.1小节)。存 储程序,用程序控制(参见5.1小节)。 2.参见书图5.1及5.2.1小节 3.参见书图5.5及522小节 4.参见52.1小节的4(1),参见52.小节的1和521小节的4 5.参见书图5.3及52.1小节的2。 6.参见书图54及52.1小节的4 7.参见书图57及522小节的2。 8.最大寻址空间是22=-16M,地址范围是0~224-1。0~65535,-32768~+32767 9.(1)算术逻辑部件(2)每秒百万条指令(3)随机访问存储器(4)只读存储器 (5)见52.1小节1(6)见543小节2(7)见543小节2(8)见54.3小节2 (9)见522小节1(10)见522小节1(11)见52小节4(2)(12)见521小节4(2) 10.(1) PCout、 MARin,占用。 (2)M读,不占用 (3)M写,不占用。 (4) Clout、add,占用。 11.取指令的过程参见543小节的2。执行指令的过程如下 (1)“ADDM,R”的执行过程 (2)“ADDR1,R2”的执行过程 T3:IR(地址段)→MAR( TRout, MARin) T3:Rl→Y (RIo DBUS→MDR T4:Y+R2→Z(R2out,ad) T4:MDR→Y (MDRout, Yin) T5:Z→R (Zout, RIin ( Rout, add (3)“JMPA(PC)”的执行过程: T6:IR地址段)→MAR( TRout, MARin) T3:IR(数据A)→Y(Rout,Yin) 7:Z→MDR (Zout, MDRin) T4:Y+PC→Z MDR→DBUS (M写) 习题 2.通用寄存器EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDl:指令指针寄存器EIP; 标志寄存器 EFLAGS;段寄存器CS、DS、ES、SS、FS、GS。 7.两者的物理地址均为12345H。 8段基值为27ABH。 9.代码段首地址为20100H,末地址为300FFH;数据段首地址为30100H,末地址为 400FFH 10.DS寄存器的内容为1000H。 13.堆栈段在存储器中的物理地址范围是21000H~30FFFH;在当前堆栈段中存入10 个字节数据后,SP的内容为0800H 14.需给出的段基值为1200H,偏移量为1008H和1009H。 习题三 1.(1)1234H,5678H,3007H,9ABCH,300BH (2)相同 2C3=12,是W中和B中数据的总字节数:C4=8,是W中数据的总字节数 (1)AL=0(2)AL=254(3)AX=4(4)AX=064lH 3.(1)2 (2) OFFEIH(3)X、Y的最小值 4.(1)①过程开始②段开始 ③宏开始 (2)①过程结束②段结束 ③宏结束 ④模块结束
部分习题参考答案 习题一 1. 计算机由五大部件组成,采用二进制,存储程序并用程序控制(参见 5.1.1 小节)。存 储程序,用程序控制(参见 5.1 小节)。 2. 参见书图 5.1 及 5.2.1 小节。 3. 参见书图 5.5 及 5.2.2 小节。 4. 参见 5.2.1 小节的 4(1),参见 5.2.1 小节的 1 和 5.2.1 小节的 4。 5. 参见书图 5.3 及 5.2.1 小节的 2。 6. 参见书图 5.4 及 5.2.1 小节的 4。 7. 参见书图 5.7 及 5.2.2 小节的 2。 8. 最大寻址空间是 224=16M,地址范围是 0~224-1。0~65535,-32768~+32767。 9. (1) 算术逻辑部件 (2) 每秒百万条指令 (3) 随机访问存储器 (4) 只读存储器 (5) 见 5.2.1 小节 1(6) 见 5.4.3 小节 2 (7) 见 5.4.3 小节 2 (8) 见 5.4.3 小节 2 (9) 见 5.2.2 小节 1(10) 见 5.2.2 小节 1(11) 见 5.2.1 小节 4(2) (12) 见 5.2.1 小节 4(2) 10. (1) PCout、MARin,占用。 (2) M 读,不占用。 (3) M 写,不占用。 (4) R1out、add,占用。 11. 取指令的过程参见 5.4.3 小节的 2。执行指令的过程如下: (1) “ADD M, R”的执行过程: (2) “ADD R1, R2”的执行过程: T3: IR(地址段)→MAR (IRout, MARin) T3:R1→Y (R1out, Yin) DBUS→MDR (M 读) T4:Y+R2→Z (R2out, add) T4: MDR→Y (MDRout, Yin) T5: Z→R1 (Zout, R1in) T5: Y+R→Z (Rout, add) (3) “JMP A(PC)”的执行过程: T6: IR(地址段)→MAR (IRout, MARin) T3: IR(数据 A)→Y (IRout, Yin) T7: Z→MDR (Zout, MDRin) T4: Y+PC→Z (PCout, add) MDR→DBUS (M 写) T5: Z→PC (Zout, PCin) 习题二 2. 通用寄存器 EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI;指令指针寄存器 EIP; 标志寄存器 EFLAGS;段寄存器 CS、DS、ES、SS、FS、GS。 7. 两者的物理地址均为 12345H。 8. 段基值为 27ABH。 9. 代码段首地址为 20100H,末地址为 300FFH;数据段首地址为 30100H,末地址为 400FFH。 10. DS 寄存器的内容为 1000H。 13. 堆栈段在存储器中的物理地址范围是 21000H~30FFFH;在当前堆栈段中存入 10 个字节数据后,SP 的内容为 0800H。 14. 需给出的段基值为 1200H,偏移量为 1008H 和 1009H。 习题三 1. (1) 1234H, 5678H, 3007H, 9ABCH, 300BH (2) 相同 2. C3=12, 是 W 中和 B 中数据的总字节数;C4=8, 是 W 中数据的总字节数 (1) AL=0 (2) AL=254 (3) AX=-4 (4) AX=0641H 3. (1) 2 (2) 0FFE1H (3) X、Y 的最小值 4. (1) ① 过程开始 ② 段开始 ③ 宏开始 (2) ① 过程结束 ② 段结束 ③ 宏结束 ④ 模块结束 1
搭配关系是:①和①搭配,②和②搭配,③和③搭配 5.变量名:N3 标号 N4 过程名:N2,N8 段名:N1,N7 符号名:N5常量名:N9 宏名:N6 6.(1)2BC3H,0004H, (2)①BX=0②BX=2BC3H③BX=1④BX ⑤BX=1 ⑥BX=3⑦BX=3 ⑧BX=6⑨BX=4149HBL=0 7.(1)错误。除DB外,均不能使用超过2个字符的字符串作为立即数:12345H太大 A3B4H左边应加0 (2)语法正确,但指令“ MOV AL,B+2”的执行结果未知。 00H,30H,30H,00H,30H,30H,00H,0OH,3OH,35H,00H,6丌H,76H,67H,76H;3个。 9. (1)A DW 6844H, IAFDH, OBC8H (2)B DB 87H, 62H, 9AH, 00H, 23H, OFH, OA6H, OOH (3)C DB 2 DUP(23), 5 DUPA),10 DUP(1, 2), 20 DUP(?) (4)D EQU S-A (5)XI EQU B-A X2 EQU S-B EDWⅩ1-X2 10.(1)X为字节变量,其初值为89H;Y为常量,其值为89H (2)X为字变量,其初值为7805H:;Y为字节变量,其初值为05H (3)X、Y都为常量,其值都是38。X不能重复定义,Y可以重复定义 62(4x为一个字变量,存储次序为8H,62H:Y起为两个字节变量,存储次序为 (5)X、Y都为字变量。X的初值为5816H,Y的初值为16B8H 1l.(1)错误:387超过一个字节。(2)正确。(3)错误:K没有定义 (4)正确。(5)错误:F被重复定义。(6)正确。(7)错误:SEG应为SEGM (8)错误:ENDP左边应有名字I。(9)错误:ENDM左边不应有名字。 习题四 1.(1)寄存器寻址,基址变址寻址;BO00H(2)寄存器相对寻址,寄存器寻址 27004H (3)立即寻址,寄存器间接寻址:26000H 4)寄存器寻址,寄存器间接寻址 17FFEH (5)寄存器间接寻址,寄存器寻址:260004(6)寄存器寻址,寄存器间接寻址 37000H (7)直接寻址,寄存器寻址;2123AH (8)基址变址相对寻址,寄存器寻 址;2B008H (9)直接寻址:21234H (10)直接转移:无物理地址 2.(1)错误。源与目的的类型(位数)不匹配(2)正确。数据可以存于代码段 (3)错误。寄存器左边不能用减号 (4)错误。立即数不能作为目的操作数 (5)正确。 OFFSET B是立即数 (6)正确。源操作数的值没超过8位 (8)错误。 WORD PTR右边只能是存 储器 (9)错误。没有“基址+基址”寻址方式(10)错误。BX-2整体应加方括号 (11)正确。 (12)错误。CS不能作为目的操作数
搭配关系是: ①和①搭配,②和②搭配,③和③搭配。 5. 变量名: N3 标号: N4 过程名: N2, N8 段名: N1, N7 符号名: N5 常量名: N9 宏名: N6 6. (1) 2BC3H, 0004H, ′T′ (2) ① BX=0 ② BX=2BC3H ③ BX=1 ④ BX=2 ⑤ BX=1 ⑥ BX=3 ⑦ BX=30 ⑧ BX=6 ⑨ BX=4149H BL=0 7. (1) 错误。除 DB 外,均不能使用超过 2 个字符的字符串作为立即数;12345H 太大; A3B4H 左边应加 0。 (2) 语法正确,但指令“MOV AL, B+2”的执行结果未知。 8. 00H, 30H, 30H, 00H, 30H, 30H, 00H, 00H, 30H, 35H, 00H, 67H, 76H, 67H, 76H;3 个。 9. (1) A DW 6844H, 1AFDH, 0BC8H (2) B DB 87H, 62H, 9AH, 00H, 23H, 0FH, 0A6H, 00H (3) C DB 2 DUP(23), 5 DUP(′A′), 10 DUP(1, 2), 20 DUP(?) (4) D EQU $-A (5) X1 EQU B-A X2 EQU $-B E DW X1-X2 10. (1) X 为字节变量,其初值为 89H;Y 为常量,其值为 89H (2) X 为字变量,其初值为 7805H;Y 为字节变量,其初值为 05H (3) X、Y 都为常量,其值都是 38。X 不能重复定义,Y 可以重复定义 (4) X 为一个字变量,存储次序为 88H,62H;Y 起为两个字节变量,存储次序为 62H,88H (5) X、Y 都为字变量。X 的初值为 5816H,Y 的初值为 16B8H 11. (1) 错误: 387 超过一个字节。 (2) 正确。 (3) 错误: K 没有定义。 (4) 正确。 (5) 错误: F 被重复定义。 (6) 正确。 (7) 错误: SEG 应为 SEGM ENT。 (8) 错误: ENDP 左边应有名字 I。 (9) 错误: ENDM 左边不应有名字。 习题四 1. (1) 寄存器寻址,基址变址寻址;1B000H (2) 寄存器相对寻址,寄存器寻址; 27004H (3) 立即寻址,寄存器间接寻址;26000H (4) 寄存器寻址,寄存器间接寻址; 17FFEH (5) 寄存器间接寻址,寄存器寻址;26000H (6) 寄存器寻址,寄存器间接寻址; 37000H (7) 直接寻址,寄存器寻址;2123AH (8) 基址变址相对寻址,寄存器寻 址;2B008H (9) 直接寻址;21234H (10) 直接转移;无物理地址 2. (1) 错误。源与目的的类型(位数)不匹配 (2) 正确。数据可以存于代码段 (3) 错误。寄存器左边不能用减号 (4) 错误。立即数不能作为目的操作数 (5) 正确。OFFSET B 是立即数 (6) 正确。源操作数的值没超过 8 位 (7) 错误。不能显式用 SP 寻址 (8) 错误。WORD PTR 右边只能是存 储器 (9) 错误。没有“基址+基址”寻址方式 (10) 错误。BX-2 整体应加方括号 (11) 正确。 (12) 错误。CS 不能作为目的操作数 2
(13)正确。(14)错误。258H超过8位,应使用DX寻址 (15)错误。移位次数大于1,应使用CL(16)错误。应改为 INC AL (17)错误。操作数的类型(位数)不确定(18)错误。两个操作数不能都是存 储器 (19)错误。源与目的的类型(位数)不匹配(20)错误。用于指明操作位数的操 作数不能是立即数 3.(1)前者将常数1000H送AX,后者将存储单元的内容(DS1000送AX。后者的 1000H为偏移地址 (2)前者将BX的内容送AX,后者将存储单元的内容(DSBX)送AX。后者的BX为偏 移地址。 (3)前者将常数N送AX,后者将存储单元的内容DSW)送AX。后者的W为偏移地址。 (4)两者都将存储器的内容(DSBX+位移量送AX。前者位移量是常数,后者位移量是 W的偏移地址 (5)两者都将CL送存储单元(段寄存器:SI)。前者送堆栈段,后者送数据段。 (6)前者将常数5送AL。后者将5号端口的内容送AL。后者的5是端口号 (7)前者将存储单元的内容ODSW送AX,后者将存储单元W的偏移地址送AX (8)两者都完成AX∧BX的运算。前者将运算结果送AX,后者不将运算结果送AX (9)两者都完成AX-BX的运算。前者将运算结果送AX,后者不将运算结果送AX。 (10)两者都完成SH+1→SI的运算。前者不影响CF位,后者影响CF位。 (11)两者都完成D1-1→D的运算。前者不影响CF位,后者影响CF位 (12)前者完成“0-AX→AX”(即逐位求反后再加1,但进位相反)的运算,后者只将AX 逐位求反。 4.(1) MOV AX,0908H。其中,0908H是常用的未组合BCD码数形式 (2)MOV WORD PTR B, 3432H 5.(1) MOV CX,B+(7-1)*2(2) LEA BX,B+(7-1)*2 MOV CX, BX] (3)LEA BX, B (4)LEA BX, B MOV CX,[BX+(7-1)*2] MOSI,(7-1)*2 MOV CX, [BX+SI] 6.可有如下的3种解答。其中,B是数据表首字节的偏移地址 (1)MOV AH, O (2)MOV AH, 0 (3)MOV AH, 0 ADD BX. AX MOV SL.AX MOV SLAX MOV AL, [BX] MOV AL, B [SI MOV AL, [BX+SI 7.若BL中为无符号数,则用下述的程序段(1)实现,若BL中为带符号数,则用下述的 程序段(2)实现 (D)MOV BH, 0 AL BL MOV BH. AH 8.(1) LDS BX,DS:[1234H] (2)LEA DL, [BX+SI+20] 9.下面的每一个指令序列都能达到目的: (1)NOT AL (2)AND AL, 55H ()AND AL, 55H OR AL. OAAH NOT AL XOR AL. OFFH (4)XOR AL, 55H (5)OR AL, OAAH OR AL. OAAH XOR AL. 55H
(13) 正确。 (14) 错误。258H 超过 8 位,应使用 DX 寻址 (15) 错误。移位次数大于 1,应使用 CL (16) 错误。应改为 INC AL (17) 错误。操作数的类型(位数)不确定 (18) 错误。两个操作数不能都是存 储器 (19) 错误。源与目的的类型(位数)不匹配 (20) 错误。用于指明操作位数的操 作数不能是立即数 3. (1) 前者将常数 1000H 送 AX,后者将存储单元的内容(DS:1000H)送 AX。后者的 1000H 为偏移地址。 (2) 前者将 BX 的内容送 AX,后者将存储单元的内容(DS:BX)送 AX。后者的 BX 为偏 移地址。 (3) 前者将常数 N 送 AX,后者将存储单元的内容(DS:W)送 AX。后者的 W 为偏移地址。 (4) 两者都将存储器的内容(DS:BX+位移量)送 AX。前者位移量是常数,后者位移量是 W 的偏移地址。 (5) 两者都将 CL 送存储单元(段寄存器: SI)。前者送堆栈段,后者送数据段。 (6) 前者将常数 5 送 AL。后者将 5 号端口的内容送 AL。后者的 5 是端口号。 (7) 前者将存储单元的内容(DS:W)送 AX,后者将存储单元 W 的偏移地址送 AX。 (8) 两者都完成 AX∧BX 的运算。前者将运算结果送 AX,后者不将运算结果送 AX。 (9) 两者都完成 AX-BX 的运算。前者将运算结果送 AX,后者不将运算结果送 AX。 (10) 两者都完成 SI+1→SI 的运算。前者不影响 CF 位,后者影响 CF 位。 (11) 两者都完成 DI-1→DI 的运算。前者不影响 CF 位,后者影响 CF 位。 (12) 前者完成“0-AX→AX”(即逐位求反后再加 1,但进位相反)的运算,后者只将 AX 逐位求反。 4. (1) MOV AX, 0908H。其中,0908H 是常用的未组合 BCD 码数形式。 (2) MOV WORD PTR B, 3432H 5. (1) MOV CX, B+(7-1)*2 (2) LEA BX, B+(7-1)*2 MOV CX, [BX] (3) LEA BX, B (4) LEA BX, B MOV CX, [BX+(7-1)*2] MOV SI, (7-1)*2 MOV CX, [BX+SI] 6. 可有如下的 3 种解答。其中,B 是数据表首字节的偏移地址。 (1) MOV AH, 0 (2) MOV AH, 0 (3) MOV AH, 0 ADD BX, AX MOV SI, AX MOV SI, AX MOV AL, [BX] MOV AL, B[SI] MOV AL, [BX+SI] 7. 若 BL 中为无符号数,则用下述的程序段(1)实现,若 BL 中为带符号数,则用下述的 程序段(2)实现: (1) MOV BH, 0 (2) MOV AL, BL CBW MOV BH, AH 8. (1) LDS BX, DS:[1234H] (2) LEA DI, [BX+SI+20] 9. 下面的每一个指令序列都能达到目的: (1) NOT AL (2) AND AL, 55H (3) AND AL, 55H OR AL, 0AAH NOT AL XOR AL, 0FFH (4) XOR AL, 55H (5) OR AL, 0AAH OR AL, 0AAH XOR AL, 55H 3
10.下面(1)中的每一条指令都能将AX的所有各位清0,(2)中的每一条指令都能将AX的 所有各位置13)中的每一条指令都能将AX的所有各位求反 MOV AX. O )①MOv 3)① NOT AX ② AND AX,0000H ②ORAX, OFFFFH② XOR AX, OFFFFH AXAX 在上述(1)和(2)中,MOⅤ指令不影响任何标志位,其余指令都使CF=OF=0:在(3)中, NOT指令不影响任何标志位,其余指令都使CF=OF=0 11.下面的每条指令都能达到目的: (1)TEST AX, AX (2)TEST AX, OFFFFH (3)AND AX, A> (4)AND AX, OFFFFH (5)OR AX, AX (6)OR AX, 0 (7XOR AX, 0 测试后,若ZF=1则可知AX=0,否则AX≠0:若SF=1则可知AX的最高位为1,否 则AX的最高位为0;若PF=1则可知AX的低8位中有偶数个1,否则AX的低8位中有奇 数个1。 12.(1)1lo1101B (2)l01l0110B (3)0011011B (4)10110 110B 13.可有两种解答 (1)乘以权值求和法 (2)乘以基数累加法 MOVAH. O MOV AH.O MOV BX.AX MOV BX. AX SHL AX. CL SHL AX. CL MOV DX. AX ADD AX BX SHL AX. CL SHL AX. CL ADD AX ADD AX BX ADD AX BX 14.①AL=80H②AL=1③AL=0FFH④AL=38H 15.(1)AX=12C5H;OF=0,SF=1,ZF=0,AF=0,PF=1,CF=0。 (2)AX=12A3H; OF=l, SF=l, ZF=0, AF=0, PF=l, CF= (3)AX=1D74H;OF=CF=1,其余的状态标志不确定 (4)AX=0E974H;OF=CF=1,其余的状态标志不确定。 (5)AX=1420H;所有的状态标志都不确定。 (6)AX=6DD7H;所有的状态标志都不确定 16.(1)下面的每一条指令都能达到目的 MOV AL.-15 MOV AL -OFH MOV AL OFIH MOV AL. 24 (2)可用多种解法 ① XORAL,80H ② NEGAL ③ XOR AL,7FH NEG AL XOR AL. 80H ADD AL ④ SUB AL ⑤ SUB AL,8H ⑥ NOT AL XOR AL. 7FH NOT AL ADD AL SIH 显然,①中的“ XOR AL,80H”可用“ AND AL,7FH”代替,②中的“ XOR AL,80H” 可用“ORAL,80H”代替,也可用“ ADD AL,80H”代替。 (3)①“ SUB AL,1”或“ DEC AL”或“ ADD AL,-1
10. 下面(1)中的每一条指令都能将AX的所有各位清0,(2)中的每一条指令都能将AX的 所有各位置 1,(3)中的每一条指令都能将 AX 的所有各位求反: (1) ① MOV AX, 0 (2) ① MOV AX, -1 (3) ① NOT AX ② AND AX, 0000H ② OR AX, 0FFFFH ② XOR AX, 0FFFFH ③ XOR AX, AX ④ SUB AX, AX 在上述(1)和(2)中,MOV 指令不影响任何标志位,其余指令都使 CF=OF=0;在(3)中, NOT 指令不影响任何标志位,其余指令都使 CF=OF=0。 11. 下面的每条指令都能达到目的: (1) TEST AX, AX (2) TEST AX, 0FFFFH (3) AND AX, AX (4) AND AX, 0FFFFH (5) OR AX, AX (6) OR AX, 0 (7) XOR AX, 0 测试后,若 ZF=1 则可知 AX=0,否则 AX≠0;若 SF=1 则可知 AX 的最高位为 1,否 则 AX 的最高位为 0;若 PF=1 则可知 AX 的低 8 位中有偶数个 1,否则 AX 的低 8 位中有奇 数个 1。 12. (1) 11011011B (2) 10110110B (3) 01011011B (4) 10110 110B 13. 可有两种解答: (1) 乘以权值求和法 (2) 乘以基数累加法 MOVAH, 0 MOV AH, 0 MOV CL, 2 MOV CL, 2 MOV BX, AX MOV BX, AX SHL AX, CL SHL AX, CL MOV DX, AX ADD AX, BX SHL AX, CL SHL AX, CL ADD AX, DX ADD AX, BX ADD AX, BX 14. ① AL=80H ② AL=1 ③ AL=0FFH ④ AL=38H 15. (1) AX=12C5H;OF=0,SF=1,ZF=0,AF=0,PF=1,CF=0。 (2) AX=12A3H;OF=1,SF=1,ZF=0,AF=0,PF=1,CF=1。 (3) AX=1D74H;OF=CF=1,其余的状态标志不确定。 (4) AX=0E974H;OF=CF=1,其余的状态标志不确定。 (5) AX=1420H;所有的状态标志都不确定。 (6) AX=6DD7H;所有的状态标志都不确定。 16. (1) 下面的每一条指令都能达到目的: MOV AL, -15 MOV AL, -0FH MOV AL, 0F1H MOV AL, 241 (2) 可用多种解法: ① XORAL, 80H ② NEGAL ③ XOR AL, 7FH NEG AL XOR AL, 80H ADD AL, 1 ④ SUB AL, 1 ⑤ SUB AL, 81H ⑥ NOT AL XOR AL, 7FH NOT AL ADD AL, 81H 显然,①中的“XOR AL, 80H”可用“AND AL, 7FH”代替,②中的“XOR AL, 80H” 可用“OR AL, 80H”代替,也可用“ADD AL, 80H”代替。 (3) ① “SUB AL, 1”或“DEC AL”或“ADD AL, -1” 4
② NEG AL ③“ NOT AL”或“ XOR AL,OFFH ④“ INC AL”或“ ADD AL,1” ⑤“ DEC AL”或“ SUB AL,1” ⑥“ SHL AL,1”或“ SAL AL,1” ⑦“ SHR AL,1” ⑧“ SAR AL,1” ⑨ MUL AL IMUL AL 17.(1) MOV AH, AL (2) MOV AH, 0 MOV DX 0 MOV CX MOv CX.8 LI: ROL AL AL.I RCL AH RCL DX. I ROL AL. 1 SHL AH. 1 LOOP LI RCL DX. I MOV CX. 4 LOOP L L2 ROL AL. I MOV AX. DX ROL AL I RCL AH 1 LOOP L2 MOV AL AH 18.执行AAA指令后,AX=0104H;若执行的是DAA指令,则AX=0074H。 19.若下述左边程序段的转移距离超过了8位补码的表数范围,则改成下述右边的指令 序列即可。 JZL JNZ M JMP L M: JMP 20.(1)条件短转移(2)无条件短转移(3)无条件近转移(4)无条件远转移 21.从(SP+1,SP)“弹出”,SP=56H。 22.(1)前者仅将存储器字节单元(DSS)的内容送入AL,后者除了完成前者的操作外, 还将SI+1→SI(若DF=0),或者SL-l→SI(若DF=1) (2)前者仅将AL的内容送入存储器字节单元(ESD),后者除了完成前者的操作外, 还将D+1→D(若DF=0),或者D-l→D(若DF=1); (3)前者仅将AX的内容与存储器字单元(ESD)的内容相比较,置标志位,后者除 了完成前者的操作外,还将D+2→D(若DF=0),或者Dl-2→DI(若DF=1) (4)前者是通用传送指令,但不能完成存储单元对存储单元的传送,后者是专用传 送指令,只能将存储器字节单元(DSSD的内容送入字节单元(ESD),然后S+1→SI且D+ DI(若DF=0),或者SI-→SI且D-l→D(若DF=1) (5)前者是通用传送指令,但不能完成存储单元对存储单元的比较,后者是专用传 送指令,只能将存储器字单元(DSS的内容与字单元(ESD)的内容比较,置标志位,然后 S+2→SI且Dl+2→DI(若DF=0),或者S-2→SI且Dl-2→DI(若DF=1) 23.(1)SI(D)是下一个(没被传送的)源(目的)字节单元的地址,CX=0 (2)SI(D)是下一个(没被比较的源(目的)字节单元的地址,CX=剩余(尚未比较)
② NEG AL ③ “NOT AL”或“XOR AL, 0FFH” ④ “INC AL”或“ADD AL, 1” ⑤ “DEC AL”或“SUB AL, 1” ⑥ “SHL AL, 1”或“SAL AL, 1” ⑦ “SHR AL, 1” ⑧ “SAR AL, 1” ⑨ MUL AL IMUL AL 17. (1) MOV AH, AL (2) MOV AH, 0 MOV DX, 0 MOV CX, 4 MOV CX, 8 L1: ROL AL, 1 L: SHL AL, 1 RCL AH, 1 RCL DX, 1 ROL AL, 1 SHL AH, 1 LOOP L1 RCL DX, 1 MOV CX, 4 LOOP L L2: ROL AL, 1 MOV AX, DX ROL AL, 1 RCL AH, 1 LOOP L2 MOV AL, AH 18. 执行 AAA 指令后,AX=0104H;若执行的是 DAA 指令,则 AX=0074H。 19. 若下述左边程序段的转移距离超过了 8 位补码的表数范围,则改成下述右边的指令 序列即可。 JZL JNZ M JMP L M: …… M: JMP L: …… L: …… 20. (1) 条件短转移 (2) 无条件短转移 (3) 无条件近转移 (4) 无条件远转移 21. 从(SP+1,SP)“弹出”,SP=56H。 22. (1) 前者仅将存储器字节单元(DS:SI)的内容送入 AL,后者除了完成前者的操作外, 还将 SI+1→SI(若 DF=0),或者 SI-1→SI(若 DF=1); (2) 前者仅将 AL 的内容送入存储器字节单元(ES:DI),后者除了完成前者的操作外, 还将 DI+1→DI(若 DF=0),或者 DI-1→DI(若 DF=1); (3) 前者仅将 AX 的内容与存储器字单元(ES:DI)的内容相比较,置标志位,后者除 了完成前者的操作外,还将 DI+2→DI(若 DF=0),或者 DI-2→DI(若 DF=1); (4) 前者是通用传送指令,但不能完成存储单元对存储单元的传送,后者是专用传 送指令,只能将存储器字节单元(DS:SI)的内容送入字节单元(ES:DI),然后 SI+1→SI 且 DI+1 →DI(若 DF=0),或者 SI-1→SI 且 DI-1→DI(若 DF=1); (5) 前者是通用传送指令,但不能完成存储单元对存储单元的比较,后者是专用传 送指令,只能将存储器字单元(DS:SI)的内容与字单元(ES:DI)的内容比较,置标志位,然后 SI+2→SI 且 DI+2→DI(若 DF=0),或者 SI-2→SI 且 DI-2→DI(若 DF=1)。 23. (1) SI(DI)是下一个(没被传送的)源(目的)字节单元的地址,CX=0; (2) SI(DI)是下一个(没被比较的)源(目的)字节单元的地址,CX=剩余(尚未比较) 5