我在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
可能有更好的解决方案。
答案 0 :(得分:3)
我发现ROR仅适用于CL寄存器,例如:
ror ESI, CL