- 2
- 0
- 约7.53千字
- 约 8页
- 2017-09-02 发布于浙江
- 举报
第4章习题解答给同学参考
本答案经本人简单作答、整理、修改(并是标准答案),仅供同学参考,欢迎同学提出宝贵意见。
4.10给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么
答案:
(1)立即寻址 没有 ip的内容
(2)直接寻址 7237H ;MOV AX,[7237h]
(3)使用BX的寄存器寻址 没有 ;MOV AX,BX
(4)使用BX的间接寻址 637DH ;MOV AX,[BX]
(5)使用BX的寄存器相对寻址 0D5B4H ;MOV AX,D[BX]
(6) 基址变址寻址 8E18H ;MOV AX,[BX][SI]
(7)相对基址变址 004FH ;MOV AX,D[BX][SI]
4.11.求执行两条指令后,各标志位的状态
MOV AL,91 ;执行后,(AL)=91=5BH
ADD AL,0BAH
加法执行如下:
0BA H 1011 1010
+ 05B H 0101 1011
115 H 1 0001 0101
CF:显然最高位产生了进位(两个加数都是两位的,和却有三位),CF=1
AF:低四位向高四位产生了进位(A+B产生进位),AF=1
ZF:运算结果不为0,ZF=0
SF:运算结果最高位为0(高四位:1H=0001B),SF=0
OF:负+正=正(两个加数的符号位不同),没有溢出,OF=0
4-12
(1)MOV AL,0F5H 正确
(2)ADD [BX][BP],BX 错误,不能同时使用[BX][BP]进行寻址
(3)CMP AL,100H 错误,AL为8位,100H大于8位,类型不匹配。
(4)TEST [BP],DL 正确
(5)ADC 15,CL 错误,目的操作数不能是立即数
(6)SUB [DI],DA_WORD 错误,两个操作数不能同时是存储器操作数。
(7)OR CH,CL 正确
(8)MOV AL,1000H 错误,AL为8位,1000H为16位,类型不匹配。
(9)SAR 10H[DI],2 错误,AL为8位,移位多次必须CL中。
(10)NOT AL,BL 错误,逻辑非操作是单操作指令。
(11)DEC CX,1 错误,逻辑非操作是单操作指令。
(12)LEA ES,TAB[BX] 错误,目的寄存器只能是通用寄存器。
4-13、根据下列要求,写出相应的汇编指令
答案:
(1)ADD AL,[BX][SI]
(3)ADD [BX][0B2H], CX
(4MOV AX,2A59H
ADD [0524H] ,AX
(5)ADD AL ,0B5H?
4-14、
答案:
(1)寄存器间接寻址
MOV BX, OFFSET TABLE
ADD BX, 08H
MOV DX ,[BX]
(2)寄存器相对寻址
MOV SI,O8H
MOV DX,[TABLE][SI]
(3)基址变址寻址
MOV BX , TABLE
MOV SI,O8H
MOV DX,[BX][SI]
4-15 15、假设(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。试给出下列各指令或程序段的分别执行的结果。
答:
(1)?????? MOV CL,20H[BX][SI]
有效地址EA= 20H+[BX]+[SI] =20H+0024H+0012H=0056H
逻辑地址 DS:0056H
物理地址=091D0H+0056H=09226H (逻辑地址左移1为加有效地址)
CL=[09226H]=0F6H
(2)?????? MOV [BP][DI],CX
有效地址EA= [BP]+[DI] =0024H+0032H=0056H
逻辑地址 SS:0056H
物理地址=1E4A0H+0056H=1E4F6H
[1E4F6H]=CX=5678H?
(3)?????? LEA BX,20H[BX][SI]
MOV AX,2[BX]
有效地址EA= 20H+[BX]+[SI] =20H+0024H+0012H=0056H
BX=0056H?
有效地址EA= 2H+[BX]=2H+0056H=005
原创力文档

文档评论(0)