收藏 分享(赏)

第二章习题答案+补充习题+第三章习题以及答案.pdf

上传人:weiwoduzun 文档编号:5715204 上传时间:2019-03-14 格式:PDF 页数:14 大小:758.69KB
下载 相关 举报
第二章习题答案+补充习题+第三章习题以及答案.pdf_第1页
第1页 / 共14页
第二章习题答案+补充习题+第三章习题以及答案.pdf_第2页
第2页 / 共14页
第二章习题答案+补充习题+第三章习题以及答案.pdf_第3页
第3页 / 共14页
第二章习题答案+补充习题+第三章习题以及答案.pdf_第4页
第4页 / 共14页
第二章习题答案+补充习题+第三章习题以及答案.pdf_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、第二章 答案 一、填空题 二、选择题 第二章 补充习题 1假定 DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变 量 VA L 的偏移地址为 0050H,请指出下列指令源操作数是什么寻址方式?源操作数在哪 里?如在存储器中请写出其物理地址是多少? (1)MOV AX,0ABH (2)MOV AX,100H (3)MOV AX,VAL (4)MOV BX,SI (5)MOV AL,VALBX (6)MOV CL,BXSI (7)MOV VALSI,BX (8)MOV BPSI,100 解答: (1)MOV AX,0ABH 寻址方式

2、:立即寻址;物理地址:无 (2)MOV AX,100H 寻址方式:直接寻址;源操作数在存储器中;物理地址:DS16+100H 2000H*16+100H20100H (3)MOV AX,VA L 寻址方式:直接寻址;源操作数在存储器中;物理地址:DS 16+V AL 2000H*16+0050H20050H (4)MOV BX,SI 寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS16+SI 2000H*16+00A0H200A0H (5)MOV AL,VA L B X 寻址方式:变址寻址;源操作数在存储器中;物理地址:DS16+V AL+BX 2000H*16+0050H+010

3、0 20150H (6)MOV CL,BXSI 寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS16+BX+SI 2000H*16+0100H+00A0H 201A0H (7)MOV VALSI,BX 寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无 (8)MOV BPSI,100 寻址方式:立即寻址;物理地址:无 2设有关寄存器及存储单元的内容如下: DS=2000H, BX=0100H, AX=1200H, SI=0002H, 20100H=12H, 20101H=34H, 20102H=56H , 20103=78H , 21200=2AH , 21201H=4CH ,

4、 21202H=0B7H , 21203H=65H。 试说明下列各条指令单独执行后相关寄存器或存储单元的内容。 (1)MOV AX,1800H (2)MOV AX,BX (3)MOV BX,1200H (4)MOV DX,1100BX (5)MOV BXSI,AL (6)MOV AX,1100BXSI 解答: 题号 指 令 执 行 结 果 (1) MOV AX,1800H AX1800H (2) MOV AX,BX AX0100H (3) MOV BX,1200H BX4C2AH (4) MOV DX,1100BX DX4C2AH (5) MOV BXSI,AL 20102H00H (6) M

5、OV AX,1100BXSI AX65B7H 3假定 BX=0E3H,变量 V ALUE=79H,确定下列指令执行后的结果(操作数均为无符号数。 对 3、6,写出相应标志位的状态)。 (1)ADD VALUE,BX (2)AND BX,VA L U E (3)CMP BX,VALUE (4)XOR BX,0FFH (5)D E C B X (6)TEST BX,01H 解答: 题号 指 令 执 行 结 果 (1) ADD VALUE,BX BX015CH (2) AND BX,VALUE BX0061H (3) CMP BX,VALUE BX00E3H(CF=ZF=OF=SF=0,AF=PF=

6、1) (4) XOR BX,0FFH BX001CH (5) DEC BX BX00E2H (6) TEST BX,01H BX00E3H(CF=ZF=OF=SF=AF=PF=0) 4已知 SS=0FFA0H,SP=00B0H,先执行两条把 8057H 和 0F79H 分别进栈的 PUSH指令, 再执行一条 POP 指令,试画出堆栈区和 SP 内容变化的过程示意图。 (标出存储单元的地 址) 解答: 00ADH 00AEH 00AFH 0FFA0 :00B0H F F AACH F F AADH F F AAEH FFAAFH FFAB0H 00ACH X F F AABH 00ADH 00A

7、EH 00AFH 0FFA0 :00B0H 57H 80H F F AACH F F AADH F F AAEH F F AAF H FFAB0H 00ACH X F F AABH 初始状态;SP 00B0H PUSH AX ;(AX 8057H )SP 00AEH 00ADH 00AEH 00AFH 0FFA0 :00B0H 79H 0FH 57H 80H F F AACH F F AADH F F AAEH FFAAFH FFAB0H 00ACH X F F AABH 00ADH 00AEH 00AFH 0FFA0 :00B0H 57H 80H F F AACH F F AADH F F

8、AAEH F F AAF H FFAB0H 00ACH X F F AABH PUSH BX ;(BX 0F79H )SP 00ACH POP BX ;SP 00AEH 堆栈段SS0FFA0H 堆栈段SS0FFA0H 堆栈段SS0FFA0H 堆栈段SS0FFA0H5已知程序段如下: MOV AX,1234H MOV CL,4 R O L A X ,CL DEC AX MOV CX,4 M U L C X 试问: (1)每条指令执行后,AX 寄存器的内容是什么?(2)每条指令执行后,CF,SF 及 ZF的值分别是什么?(3)程序运行结束时,AX 及 DX 寄存器的值为多少? 指 令 执 行 结

9、果 AX CF SF ZF MOV AX,1234H AX1234H MOV CL,4 AX1234H ROL AX,CL AX2341H 1 0 0 DEC AX AX2340H 1 0 0 MOV CX,4 AX2340H 1 0 0 MUL CX AX8D00H,DX=0000H 0 0 0 6写出实现下列计算的指令序列。 (假定 X、Y、Z、W、R 都为字变量) (1)Z=W+(Z+X) (2)Z=W-(X+6)-(R+9) (3)Z=(W*X)/(R+6) (4)Z=( (W-X)/5*Y)*2 解答: (1)Z=W+(Z+X) 题号 指 令 题号 指 令 (1) Z=W+(Z+X)

10、 (2) Z=W-(X+6)-(R+9) MOV AX,Z MOV DX,R MOV BX,X ADD DX,9 MOV CX,W MOV BX,X ADD AX,BX ADD BX,6 ADD AX,CX MOV AX,W MOV Z,AX SUB AX,BX SUB AX,DX MOV Z,AX (3) Z=(W*X)/(R+6) (4) Z=( (W-X)/5*Y)*2 MOV DX,0 MOV AX,W MOV AX,W MOV BX,X MOV BX,X SUB AX,BX MUL BX MOV DX,0 PUSH AX MOV CL,5 MOV AX,R DIV CL ADD AX

11、,6 MOV BX,Y MOV CX,AX MUL BX POP AX MOV CL,2 DIV CX MUL CL MOV Z,AX MOV Z,AX MOV Z+1,DX MOV Z+1,DX 7假 定 DX=1100100110111001B, CL=3, CF=1,试确定下列各条指令单独执行后 DX 的值。 (1)SHR DX,1 (2)SHL DL,1 (3)SAL DH,1 (4)SAR DX,CL (5)ROR DX,CL (6)ROL DL,CL (7)RCR DL,1 (8)RCL DX,CL 解答: 题号 指 令 执 行 结 果 (1) SHR DX,1 DX=0110 0

12、100 1101 1100(64DCH) (2) SHL DL,1 DX=1100 1001 0111 0010(C972H) (3) SAL DH,1 DX=1001 0010 1011 1001(92B9H) (4) SAR DX,CL DX=1111 1001 0011 0111(F937H) (5) ROR DX,CL DX=0011 1001 0011 0111(3937H) (6) ROL DL,CL DX=1100 1001 1100 1101(C9CDH) (7) RCR DL,1 DX=1100 1001 1101 1100(C9DCH) (8) RCL DX,CL DX=0

13、100 1101 1100 1011(4DCFH) 8已知 DX=1234H,AX=5678H,试分析下列程序执行后 DX、AX 的值各是什么?该程序 完成了什么功能? MOV CL,4 SHL DX,CL MOV BL,AH SHL BL,CL SHR BL,CL OR DL,BL 解答:DX=2345H,AX=6780H。该程序完成的功能如图所示,将 DX,AX拼装成双字后, 左移四位。 DX DX AX 1234 5678 DX AX 2340 6 7 80 23456780 AX9试分析下列程序段: ADD AX,BX JNC L2 SUB AX,BX JNC L3 JMP SHORT

14、L5 如果 AX、BX的内容给定如下: A X BX (1)1 4 C 6 H 8 0 D C H (2)B568H 54B7H 问该程序在上述情况下执行后,程序转向何处? 解答: (1)AXAX+BX14C6H+80DCH95A2H;CF0;无进位,转移至 L2; (2)方法同(1) ,略 10编写一段程序,比较两个 5 字节的字符串 OLDS 和 NEWS,如果 OLDS 字符串不同于 NEWS 字符串,则执行 NEW_LESS,否则顺序执行。 解答:编程如下, (说明:左测程序为常规编法,两个字符串在一个数据段中;右测的程序 要求 OLDS 在数据段中,NEWS 在附加段中,利用串操作的

15、指令是可行的) L E A S I ,OLDS; L E A S I ,OLDS L E A D I ,NEWS; L E A D I ,NEWS M O V C X ,5; MOV CX,5 NEXT: MOV AL,SI; CL D M O V B L ,DI; RE P E CMP S B C M P A L ,BL; J N Z N E W _L E S S JNZ NEW_LESS; I N C S I ; J MP E X I T I N C D I ; N E W _L E S S : LOOP NEXT; EX I T: J M P E X I T NEW_LESS: EXIT

16、: 11若在数据段中从字节变量 TABLE 相应的单元开始存放了 015 的平方值,试写出包含 有 XLAT 指令的指令序列查找 N(015)的平方。 (设 N的值存放在 CL 中) 解答: MOV BX,OFFSET TABLE;LEA BX,TABLE MOV CL,N MOV AL,CL XLAT 12有两个双字数据串分别存放在 ASC1 和 ASC2 中(低字放低地址) ,求它们的差,结果 放在 ASC3中(低字放低地址) 。 A S C1 D W 5 78,400 ASC2 DW 694,12 ASC3 DW ?,? 解答:编程如下, L E A S I ,ASC1 L E A D

17、I ,ASC2 L E A B X ,ASC3 M O V C X ,2 CLC NEXT: MOV AX,SI M O V D X ,DI S B B A X ,DX M O V B X ,AX I N C S I I N C S I I N C D I I N C D I INC BX INC BX LOOP NEXT 第三章 习题以及答案 一、填空题 二、选择题 三、简答题 1下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。 VAR1 DB 10,2 VAR2 DW 5 DUP(?) ,0 VAR3 DB HOW ARE YOU? , $ ,3 DUP(1,2) V

18、AR4 DD -1,1,0 解答:字节空间-V AR1:2;VA R 2:12;VA R 3:19;VA R 4:12。 存储空间的分配图: DS:0000 0A 02 00 00 00 00 00 00 00 00 00 00 00 00 48 4F 0010 57 20 41 52 45 20 59 4F 55 3F 24 01 02 01 02 01 0020 02 FF FF FF FF 01 00 00 00 00 00 00 00 2假定 VA R 1 和 VA R 2 为字变量,LAB 为标号,试指出下列指令的错误之处。 (1)ADD VAR1,VAR2 (2)SUB AL,VA

19、 R 1 (3)JMP LABCX (4)JNZ VAR1 (5) MOV 1000H,10 0 (6)SHL AL, 4 解答:(1)两个操作数中至少有一个为寄存器; (2)AL 为字节,VA R 1 为字变量,不匹配; (3)中不能用 CX; (4)转向地址应为标号; (5)目的操作数的类型不确定; (6)SHL 指令中,当所移位数超过 1时,必须用 CL 或 CX来取代所移位数。 3对于下面的符号定义,指出下列指令的错误。 A1 DB ? A2 DB 10 K1 EQU 1024 (1) MOV K1,AX (2)MOV A1,AX (3)CMP A1,A2 (4)K1 EQU 2048

20、 解答:(1)K1为常量,不能用 MOV指令赋值; (2)A1 为字节,AX 为字变量,不匹配; (3)A1 未定义,无法做比较指令; (4)K1 重新赋值前,必须用 PURGE 释放。 4设字变量单元 A、B、C 存放有三个数,若三个数都不为零,则求三个数的和,存放在 D 中;若有一个为零,则将其余两个也清零,试编写程序。 解答: DATA SEGMENT A DB ? B DB ? C DB ? D DW ? DATA ENDS STACK SEGMENT STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,SS:STACK,ES:DATA STA

21、RT: MOV AX,DATA MOV DS,AX LEA SI,A LEA DI,D MOV AL,SI CMP AL,00 JZ ZERO ADC DX,AL LEA SI,B MOV AL,SI CMP AL,00 JZ ZERO ADC DX,AL LEA SI,C MOV AL,SI CMP AL,00 JZ ZERO ADC DX,AL MOV DI,DX JMP EXIT ZERO: MOV AL,0 MOV A,AL MOV B,AL MOV C,AL EXIT: MOV AX,4C00H I N T 21H CODE ENDS END START 5试编程序将当前数据区从 B

22、UFF 开始的 4K个单元中均写入 55H,并逐个单元读出比较, 看写入的与读出的是否一致。若全对,则将 ERR 单元置 0H;如果有错,则将 ERR 单元 置 FFH。 解答: DATA SEGMENT BUFF DB 1000H DUP(?) ERR DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX ;将 55H 依次放入 BUFF 开始的 4K个单元 LEA SI,BUFF MOV CX,1000H MOV AL,55H NTXT: MOV SI,AL INC SI LOOP NEXT ;取出与 55H比较,全对则 ERR=0,否则 ERR=FFH LEA DI,BUFF LEA SI,ERR MOV CX,1000H NEXT1: MOV AL,DI INC DI CMP AL,55H JNZ ERROR;若有一个不同,即置 ERR=FFH LOOP NEXT1 MOV AL,00H MOV SI,AL;全比较完无错,则置 ERR=0 JMP EXIT ERROR: MOV AL,0FFH MOV SI,AL ;返回 DOS EXIT: MOV AH,4CH INT 21H CODE ENDS END START END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报