-2

我无法理解 ror 和 shl 在汇编中到底做了什么。我看到了定义,例如 ror:将位向右旋转并返回到左侧的高位。

但这意味着什么?我只是无法绕过它。就像如果

mov eax, 0x12345678
mov ebx, eax
ror ebx, 16

怎么了?

4

1 回答 1

1
mov eax, 0x12345678
mov ebx, eax
ror ebx, 16

发生的情况是 EBX 的低 16 位与 EBX 的高 16 位交换。EBX 中的值将是 0x56781234。

各种移位一次执行 1 位。16定义了 CPU 重复将 EBX 的所有位向右移动的过程的次数。每个移位位 [0] 都在进位标志中复制,同时填充现在的空位 [31]。

于 2015-03-06T17:41:51.523 回答