大会:ROL指令是否正确?

比方说,我有以下值存储在AX:1000100001001和CL我有值1。

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

但是,不应该正确答案是00010000100101? (I将所有位左移,因此MSB在右侧出现为LSB?)


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

   1 0001 0000 1001

实际上是

0001 0001 0000 1001

所以是的,其中一个左旋是

0010 0010 0001 0010

请注意,如果你知道cl是1, rol ax, cl是毫无意义的rol by 1有一个特殊的编码,并且有一个rol reg, imm8编码可以用于其他计数。


您忘记了其他设置为零(0)的位,但您不表示但仍然存在: 0001 0001 0000 1001 (16位)。 当你滚动这个时,答案就像给出的一样。

链接地址: http://www.djcxy.com/p/72401.html

上一篇: Assembly: ROL instruction correct?

下一篇: Explanation of x86 legacy instructions