汇编语言问题

[复制链接]
查看11 | 回复2 | 2009-2-23 07:31:01 | 显示全部楼层 |阅读模式
MOV AX,1234H
MOV CL,4
ROL AX,CL
DEC AX
MOV CX,4
MUL CX
HLT
寄存器AH的值是(),寄存器AL的值是()
AH=8DHAL=00H
ROL是循环左移 但是感觉值没变!但是答案?
就是想了好久想不明白,请各位大侠解释一下!小弟不胜感激

回复

使用道具 举报

千问 | 2009-2-23 07:31:01 | 显示全部楼层
楼上正解.我认为,可能是楼主对ROL指令的用法存在疑惑.ROL是循环左移,它的作用就体现在循环上,移出来的位,不但进入CF,而且还填补空出来的位.例:1100移一次,变成:1001,这时CF=1,最前面的1跑到了最后面;再移一次,变成:0011,这时CF=1,最前面的1也跑到了最后面;又再移一次,变成:0110,这时CF=0,最前面的0跑到了最后面.类推...ROL指令跟SHL(逻辑左移)指令区别就在这了.SHL移空出来的位都补0...
回复

使用道具 举报

千问 | 2009-2-23 07:31:01 | 显示全部楼层
1234H循环左移4位就成了2341H了。再减1,得2340H,乘以4,得8d00H...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行