%al在C代码中注册

时间:2015-11-03 16:28:58

标签: c assembly disassembly

testb  $1, %al
je     .L3
leal   1(%eax,%eax,2), %eax
jmp    .L4

我收到了上面的汇编代码,并要求将其翻译成c代码。

我知道它几乎都在做什么,我只是不知道如何为%al寄存器做C代码。

这是汇编代码的其余部分,如果它有帮助

prob2:
pushl  %ebp
movl   %esp, %ebp
movl   8(%ebp), %eax
cmpl   $1, %eax
je     .L1
.L6:
testb  $1, %al
je     .L3
leal   1(%eax,%eax,2), %eax
jmp    .L4
.L3:
shrl   %eax
.L4:
cmpl   $1, %eax
jne    .L6
.L1:
popl   %ebp
ret

1 个答案:

答案 0 :(得分:1)

这里没关系。 AL中的位0与EAX中的位0相同。 8位操作肯定是编译器的优化。因此,您可以将AL视为EAX