x86汇编,ROR旋转,从寄存器或内存计数

时间:2012-12-25 21:37:57

标签: assembly x86 nasm

我在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

可能有更好的解决方案。

1 个答案:

答案 0 :(得分:3)

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

ror ESI, CL