这是x86-64移位指令的正确解释吗?

时间:2014-10-29 21:24:19

标签: assembly x86-64 shift

movl    %eax, %edx           
sarl    $31, %edx            
shrl    $31, %edx         

我有上面的x86-64代码。我正在解释这意味着sarl会将edx(相当于eax)的值向右移位算术,这意味着最高有效位将从寄存器中填充32位中的31位,从右边填充。

然后,shrl用0填充31个最高有效位,在edx寄存器中留下1个单独的位。该位将读取' 0' 0如果eax是积极的,那么' 1'如果eax是否定的。

这是正确的解释,还是我错误地理解了这个概念?

0 个答案:

没有答案