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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(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)
(2) Z=W-(X+6)-(R+9)
MOV MOV MOV ADD ADD MOV
AX,Z BX,X CX,W AX,BX AX,CX Z,AX
(1)MOV AX,0ABH
(2)MOV AX,[100H]
(3)MOV AX,VAL
(4)MOV BX,[SI]
(5)MOV AL,VAL[BX]
(6)MOV CL,[BX][SI]
(7)MOV VAL[SI],BX
(8)MOV [BP][SI],100
解答:
(1)MOV AX,0ABH 寻址方式:立即寻址;物理地址:无
POP
AX
DIV MOV MOV
CX Z,AX Z+1,DX
(4)
Z=((W-X)/5*Y)*2
MOV MOV SUB
AX,W BX,X AX,BX
MOV MOV
DX,0 CL,5
DIV
CL
MOV
BX,Y
MUL MOV
BX CL,2
MUL MOV MOV
CL Z,AX Z+1,DX
7.假定 DX=1100100110111001B,CL=3,CF=1,试确定下列各条指令单独执行后 DX 的值。
LEA SI,OLDS;
LEA SI,OLDS
LEA DI,NEWS;
LEA DI,NEWS
MOV CX,5;
MOV CX,5
NEXT: MOV AL,[SI];
CLD
MOV BL,[DI]; CMP AL,BL;
REPE CMPSB JNZ NEW_LESS
JNZ NEW_LESS;
……
INC SI; INC DI;
第二章 答案
一、填空题
二、选择题
第二章 补充习题
1.假定 DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变
量 VAL 的偏移地址为 0050H,请指出下列指令源操作数是什么寻址方式?源操作数在哪
里?如在存储器中请写出其物理地址是多少?
MOV MOV ROL DEC
AX,1234H CL,4 AX,CL AX
AX AX=1234H AX=1234H AX=2341H AX=2340H
CF SF ZF ××× ×××
1
0
0
1
0
0
MOV CX,4 MUL CX
AX=2340H AX=8D00H,DX=0000H
1
0
0
0
0
0
6.写出实现下列计算的指令序列。(假定 X、Y、Z、W、R 都为字变量)
5.已知程序段如下:
MOV AX,1234H
MOV CL,4 ROL AX,CL
DEC AX
MOV CX,4
MUL CX 试问:(1)每条指令执行后,AX 寄存器的内容是什么?(2)每条指令执行后,CF,SF 及
ZF 的值分别是什么?(3)程序运行结束时,AX 及 DX 寄存器的值为多少?
指令
执行结果
0FFA0:00B0H
X
FFAB0H
·
·
·
·
·
·
FFAABH
00ACH
FFAACH
00ADH
FFAADH
00AEH 57H FFAAEH
00AFH 80H FFAAFH
0FFA0:00B0H
X
FFAB0H
·
·
·
·
·
·
③PUSH BX;(BX=0F79H)SP=00ACH
④POP BX;SP=00AEH
DX=0011 1001 DX=1100 1001 DX=1100 1001 DX=0100 1101
0011 0111(3937H) 1100 1101(C9CDH) 1101 1100(C9DCH) 1100 1011(4DCFH)
8.已知 DX=1234H,AX=5678H,试分析下列程序执行后 DX、AX 的值各是什么?该程序 完成了什么功能?
2.设有关寄存器及存储单元的内容如下: DS=2000H , BX=0100H , AX=1200H , SI=0002H , [20100H]=12H , [20101H]=34H ,
[20102H]=56H , [20103]=78H , [21200]=2AH , [21201H]=4CH , [21202H]=0B7H ,
MOV ADD MOV ADD MOV SUB SUB MOV
DX,R DX,9 BX,X BX,6 AX,W AX,BX AX,DX Z,AX
(3)
Z=(W*X)/(R+6)
MOV MOV MOV
DX,0 AX,W BX,XMULBXPUSH MOV
AX AX,R
ADD MOV
AX,6 CX,AX
2 34 56 780
9.试分析下列程序段:
ADD AX,BX
JNC L2 SUB AX,BX
JNC L3
JMP SHORTL5 如果 AX、BX 的内容给定如下:
AX
BX
(1)14C6H
80DCH
(2)B568H
54B7H
问该程序在上述情况下执行后,程序转向何处?
解答:(1)AX=AX+BX=14C6H+80DCH=95A2H;CF=0;无进位,转移至 L2; (2)方法同(1),略
解答:
MOV BX,OFFSET TABLE;LEA BX,TABLE MOV CL,N
MOV AL,CL
XLAT
12.有两个双字数据串分别存放在 ASC1 和 ASC2 中(低字放低地址),求它们的差,结果
放在 ASC3 中(低字放低地址)。
ASC1 DW 578,400
ASC2
DW 694,12
10.编写一段程序,比较两个 5 字节的字符串 OLDS 和 NEWS,如果 OLDS 字符串不同于
NEWS 字符串,则执行 NEW_LESS,否则顺序执行。
解答:编程如下,(说明:左测程序为常规编法,两个字符串在一个数据段中;右测的程序
要求 OLDS 在数据段中,NEWS 在附加段中,利用串操作的指令是可行的)
(1)SHR DX,1
(2)SHL DL,1
(3)SAL (5)ROR (7)RCR
DH,1 DX,CL DL,1
(4)SAR (6)ROL (8)RCL
DX,CL DL,CL DX,CL
解答:
题号
指令
执行结果
(1) SHR DX,1
DX=0110 0100 1101 1100(64DCH)
(2) SHL DL,1
(1) MOV AX,1800H
AX=1800H
(2) MOV AX,BX
AX=0100H
(3) MOV BX,[1200H]
BX=4C2AH
(4) (5) (6)
MOV MOV MOV
DX,1100[BX] [BX][SI],AL AX,1100[BX][SI]
DX=4C2AH [20102H]=00H AX=65B7H
堆栈段SS=0FFA0H
00ACH
00ADH
00AEH
00AFH
0FFA0:00B0H
X
·
·
·
·
·
·
FFAABH
FFAACH FFAADH FFAAEH FFAAFH FFAB0H
FFAABH
00ACH
FFAACH
00ADH
FFAADH
00AEH 57H FFAAEH
00AFH 80H FFAAFH
第三章 习题以及答案
一、填空题
二、选择题
三、简答题 1.下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。
VAR1 DB 10,2 VAR2 DW 5 DUP(?),0 VAR3 DB ‘HOW ARE YOU?’,‘$’,3 DUP(1,2)
VAR4 DD -1,1,0 解答:字节空间----VAR1:2;VAR2:12;VAR3:19;VAR4:12。 存储空间的分配图:
BX=00E3H(CF=ZF=OF=SF=AF=PF=0)
4.已知 SS=0FFA0H,SP=00B0H,先执行两条把 8057H 和 0F79H 分别进栈的 PUSH 指令, 再执行一条 POP 指令,试画出堆栈区和 SP 内容变化的过程示意图。(标出存储单元的地 址)
解答:
堆栈段SS=0FFA0H
JMP EXIT NEW_LESS:
LOOP NEXT;
……
……
EXIT:
……
JMP EXIT NEW_LESS:
……
EXIT: …… 11.若在数据段中从字节变量 TABLE 相应的单元开始存放了 0~15 的平方值,试写出包含
有 XLAT 指令的指令序列查找 N(0~15)的平方。(设 N 的值存放在 CL 中)
ASC3
DW ?,?
解答:编程如下,
LEA SI,ASC1
LEA DI,ASC2
LEA BX,ASC3 MOV CX,2
CLC
NEXT: MOV AX,[SI]
MOV DX,[DI] SBB AX,DX
MOV [BX],AX
INC SI
INC SI
INC DI
INC DI
INC BX
INC BX
LOOP NEXT
(2)MOV AX,[100H] 寻 址 方 式 : 直 接 寻 址 ; 源 操 作 数 在 存 储 器 中 ; 物 理 地 址 : DS * 16+100H =
2000H*16+100H=20100H
(3)MOV AX,VAL 寻 址 方 式 : 直 接 寻 址 ; 源 操 作 数 在 存 储 器 中 ; 物 理 地 址 : DS * 16+VAL =
2000H*16+0050H=20050H
(4)MOV BX,[SI] 寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS*16+SI=
2000H*16+00A0H=200A0H
(5)MOV AL,VAL[BX]
寻址方式:变址寻址;源操作数在存储器中;物理地址:DS*16+VAL+BX=
2000H*16+0050H+0100
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
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) (6) (7) (8)
ROR ROL RCR RCL
DX,CL DL,CL DL,1 DX,CL
0FFA0:00B0H
X
FFAB0H
·
·
·
·
·
·
①初始状态;SP=00B0H
②PUSH AX;(AX=8057H)SP=00AEH
堆栈段SS=0FFA0H
堆栈段SS=0FFA0H
FFAABH
00ACH 79H FFAACH
00ADH 0FH FFAADH
00AEH 57H FFAAEH
00AFH 80H FFAAFH
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 12 3 4
AX 56 7 8
DX 23 4 0
AX 6780
DX
AX
解答:
题号
指令
执行结果
(1) ADD VALUE,BX
BX=015CH
(2) AND BX,VALUE
BX=0061H
(3) CMP BX,VALUE
BX=00E3H(CF=ZF=OF=SF=0,AF=PF=1)
(4) XOR BX,0FFH
BX=001CH
(5) DEC BX
BX=00E2H
(6) TEST BX,01H
[21203H]=65H。 试说明下列各条指令单独执行后相关寄存器或存储单元的内容。
(1)MOV AX,1800H
(2)MOV
AX,BX
(3)MOV BX,[1200H]
(4)MOV
DX,1100[BX]
(5)MOV [BX][SI],AL 解答:
(6)MOV
AX,1100[BX][SI]
题号
指令
执行结果
3.假定 BX=0E3H,变量 VALUE=79H,确定下列指令执行后的结果(操作数均为无符号数。
对 3、6,写出相应标志位的状态)。 (1)ADD VALUE,BX (3)CMP BX,VALUE
(2)AND (4)XOR
BX,VALUE BX,0FFH
(5)DEC BX
(6)TEST BX,01H
=20150H
(6)MOV CL,[BX][SI] 寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS*16+BX+SI=
2000H*16+0100H+00A0H =201A0H
(7)MOV VAL[SI],BX 寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无
(8)MOV [BP][SI],100 寻址方式:立即寻址;物理地址:无
相关文档
最新文档