汇编:ROL指令正确吗?

时间:2016-03-22 00:04:57

标签: assembly x86

假设我在AX中存储了以下值:1000100001001,在CL中我的值为1.

当我执行ROL AX,CL指令时,我的SW告诉我AX的内容现在是10001000010010。

不应该正确答案是00010000100101吗? (我ROL所有位到左边,因此MSB在右边是LSB?)

2 个答案:

答案 0 :(得分:4)

您的调试器通过省略前导零来欺骗您。

   1 0001 0000 1001

实际上是

0001 0001 0000 1001

所以是的,左旋一次是

0010 0010 0001 0010

请注意,如果您知道rol ax, cl为1,则cl毫无意义。rol by 1具有特殊编码,并且您可以使用rol reg, imm8编码用于其他计数。

答案 1 :(得分:2)

您忘记了设置为零(0)的其他位,但您不能表示但仍然存在:0001 0001 0000 1001(16位)。滚动它时,答案是给定的。