1

我正在 x86 程序集中使用 nasm 编写代码。我希望能够做到这一点(在 EAX 中是旋转次数,或在 [EBP + 12] 下):

ror ESI, EAX ;count- register
ror ESI, DWORD [EBP + 12] ;count- memory

但这是不可能的。ror 只接受立即常量,如

ror ESI, 4  ; four right rotations

我不喜欢循环:

loop:  
ror ESI, 1
sub EAX, 1
cmp EAX, 0
jg loop

这个问题可能有更好的解决方案。

4

1 回答 1

3

我发现 ROR 仅适用于 CL 寄存器,例如:

ror ESI, CL
于 2012-12-25T21:50:49.987 回答