汇编语言程序设计习题

汇编语言程序设计习题,第1张

1.写出下列程序段执行的结果,(AL)=? (DL)=?

并指出此程序段完成的是什么功能?

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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7755209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存