我们从32位代码开始,例如:" AA BB CC DD" (小端)
我们想要" AA DD CC BB"作为最终结果(大端)。 我设法将它写成8行,%ebx作为条目,%ecx作为退出。老师提到有可能用不到4行写出来,3是记录。我很想知道如何缩短它。
mov %R1, %ebx
mov %bx, %cx
shl $16, %ecx
mov %cl, %dl
mov %bl, %cl
mov %bh, %dh
shr %16, %edx
and %edx, %ecx
答案 0 :(得分:3)
我不确定att语法,但你可以做到
bswap ebx ; AA BB CC DD -> DD CC BB AA Swap byte order
ror ebx, 8 ; DD CC BB AA -> AA DD CC BB Roll right 8 bits