用不到4行的AT& T组装这个练习

时间:2016-04-09 15:55:18

标签: assembly inline-assembly att

我们从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

1 个答案:

答案 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