第3章作业及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 判断下列指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一条或多条指令)实现原错误指令((8)、(13)除外)期望实现的操作。
(1)MOV AL,BX (9)MOV ES,3278H
(2)MOV AL,SL (10)PUSH AL
(3)INC [BX] (11)POP [BX]
(4)MOV 5,AL (12)MOV [1A8H],23DH
(5)MOV [BX],[SI] (13)PUSH IP
(6)MOV BL,F5H (14)MOV [AX],23DH
(7)MOV DX,2000H (15)SHL AX,5
(8)POP CS (16)MUL AX,BX
答:(7)、(11)、(12)正确,其他指令有错误
(1)两操作数类型不匹配,可改为MOV AL,BL或MOV AX,BX
(2)SL寄存器书写错误,原意应为SI,另外两操作数类型不匹配,可改为MOV AX,SI (3)操作数是字还是字节不明确,可改为INC WORD PTR [BX]或INC BYTE PTR [BX] (4)立即数不能为目的操作数
(5)两操作数不能同时为存储器寻址,可改为
MOV AX,[SI]
MOV [BX],AX
(6)F5H前应加0,以区别符号变量F5H
(8)CS不能为操作数
(9)立即数不能直接送给段寄存器,可改为
MOV AX,3278H
MOV ES,AX
(10)立即数应为字类型,可改为PUSH AX
(13)IP不能为操作数
(14)AX不能用于寄存器间接寻址,可改为
MOV BX,AX
MOV [BX],23DH
(15)大于1的移动次数不能直接出现在指令中,只能用CL,可改为
MOV CL,5
SHL AX,CL
(16)在MUL指令中AX为隐含操作数,可改为MUL BX
2、MOV AX,BX
NOT AX
ADD AX,BX ;AX=_ 0FFFFH
INC AX
AX= 0H CF=___0___
3、MOV BL, 02H
MOV AL, 07H
MUL BL ; AX=__ 0E_H
AAM
AH=__ 01__H, AL=__ 04___H
4、设寄存器AL,BL,CL中内容均为1CH,执行上述指令序列后,
XOR AL,0FH
AND BL,0FH
OR CL,0FH
AL= 13H,BL= 0C H,CL= 1F H。
5、SAL AL, 1
MOV BL, AL
MOV CL, 2
SAL AL,CL
ADD AL, BL
回答:程序实现的完整功能是将AL左移1位(2*AL)后和再左移2位(4*2*AL)相加,结果实现10*AL。
6、LEA SI,BUFFER
LEA DI,ARRAY
MOV CX,100
XOR BL,BL
LP:CMP [SI],01H
JNZ LP1
INC BL
LP1:INC SI
LOOP LP
MOV [DI],BL
回答:程序实现的完整功能是从BUFFER开始的连续100个字节单元内容为1的个数保存到ARRAY开始的存储单元中
MOV AX,2000H
MOV DS,AX
MOV SS,AX
MOV BX,2050H
MOV SI,BX
MOV DI,3050H
MOV SI,DI
MOV SP,5FFFH
MOV CL,25
MOV BL,CL
MOV AH,0F0H
MOV CH,AH
MOV BYTE PTR[DI],64
MOV WORD PTR[SI],256
MOV DL,[SI+1]
MOV DH,1[SI]
MOV WORD PTR[BX][SI],34H
MOV [BX+SI+4],BX
MOV BP,2[BX+DI]
MOV [BP][DI],BX
MOV AX,[BP][DI]
MOV BL,AL
MOV ES,BX
PUSH BX
PUSH DI
POP CX
POP DX XCHG AX,BP XCHG DH,BL SAHF
CMC
LAHF
STD
CLI
PUSHF
CLD
POPF
NOP