我正在 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
这个问题可能有更好的解决方案。