汇编中一道简单的例题详细解答(指令执行与寄存器内容)

部分程序段如下:

MOV AX,0ABCH  

DEC AX 

AND AX,00FFH 

MOV CL,4 

SAL AL,1  

MOV CL,AL

ADD CL,78H 

PUSH AX 

POP BX

解答如下

MOV AX,0ABCH    ;立即数寻址,将0ABCH送入AX,AH中为0AH,AL中为BCH.

DEC AX    ;减1操作,将AX减1并送入AX.AX=0ABBH

AND AX,00FFH   ;逻辑"与"运算,AX∩00FFH得到的结果送入AX,AX=00BBH(如果不理解可以化为二进制再转化回16进制)

MOV CL,4   ;将4送入CL(其中4为十进制,也可以为二进制或者16进制,并不影响)CL=04H

SAL AL,1   ;算数左移,将 AL算数左移1位,即将10111011B左移1位得01110110B,得AL=76H(注意状态标志位的变化情况)

MOV CL,AL   ;寄存器寻址,将AL中内容送入CL得CL=76H

ADD CL,78H   ;加法,将CL与78H相加,并把结果送入CL.得CL=EEH

PUSH AX   ;压栈指令,将AX中的数据压入堆栈中,堆栈指针-2指向新栈顶.0076H→AX

POP BX  ;出栈指令,将栈顶的数据弹出并送入BX,堆栈指针+2指向新栈顶.0076H→BX

如果其中有错误欢迎指出并会立即改正。

下一篇会介绍一道关于出入栈的题目。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值