% al s’inscrire en code C

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

On me donne le code d’assemblage ci-dessus et on me demande de le traduire en code c.

Je sais ce que presque tout cela fait, je ne sais tout simplement pas comment faire du code C pour le registre %al .

Voici le rest du code d’assemblage si cela peut vous aider

 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 

    Ça n’a pas d’importance ici. Bit0 dans AL est identique à Bit0 dans EAX . L’opération 8 bits était sûrement une optimisation du compilateur. Donc, vous pouvez lire AL comme EAX .