并指出此程序段完成的是什么功能?
MOV CL, 4
MOV AL, 87d=57H
MOV DL, AL
AND AL, 0FH
OR AL, 30H
SHR DL, CL
OR DL, 30H
(AL)=37H (DL)=35H
程序段完成功能是:把AL中的16进制数高位送DL,移位取出低位,
再分别转化为对应的ASCII码.
2.假定DS=2100H,BX=0100H,SI=0002H;
[21100H]=12H,[21101H]=34H,[21102H]=56H,[21103H]=78H。
2100:100H=12H,34H,56H,78H
分析下列指令执行后寄存器的内容。
(1) MOV AX,[101H] ax=5634H
(2) MOV AX,[BX+2] ax=[0102H]=7856H
(3) MOV AL,[BX][SI+1] al=[0103H]=78H
(4) MOV AX,100H[SI] ax=[0102H]=7856H
3.识别下列指令正确与否,对错误指令,说明出错的原因。
(1) MOV DS,100 × 数据段不允许用立即数赋值
(2) MOV [1000H],23H ×立即数送入内存需指明是字还是字节
(3) MOV [1000H],[2000H] ×源和目标不能同为内存数
(4) MOV DATA,1133H ? 如用DATA定义过数据段,DATA就不能再用作变量名
(5) MOV 1020H,DX ×目标不能是立即数
(6) MOV AX,[0100H+BX+BP] ×寻址时,BX、BP只能用一个
(7) MOV CS,AX ×CS不能直接赋值
(8) PUSH AL ×堆栈不能压入字节,只能压入字(32位压入双字)
(9) PUSH WORD PTR[SI] √
(10) IN AL,378H ×端口寻址大于0FFH,端口号源要放入DX
(11) OUT 80H,AX √
(12) MOV CX,[AX+SI]×AX不能用于内存寻址
11.没有一个对的,应该是XOR
AH,
AH
MUL
BX,你抄错题了吧。
我估计D选项里的两个MUL
BX,其中有一个是C选项里的,如果是这样的话就选C。
12.
跟上面一样。我估计你又抄错题了,D选项里的两个IMUL
BX其中一个应该是C选项里的。如果
是这样的话就选D。CBW
IMUL
BX
13.
A
14.
D
15.
D
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)