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

  • 格式:pdf
  • 大小:758.69 KB
  • 文档页数:14

(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