Altro While in assembly

whatisdone

Utente Iron
31 Maggio 2019
2
2
0
15
Ultima modifica:
Buongiorno a tutti,
ho appena svolto un esercizio di traduzione da C in Assembly(sintassi AT&T) e non so se sia corretto, potreste dargli un'occhiata per favore?

C:
Codice:
int a = 0;
while (a<10) a++;
return a;

Assembly:
Codice:
movl $0, %eax
E:  cmpl $10, %eax
    Jge S
    incl %eax
S:  ret
 
Questo esercizio in C:
C:
int as(int a) {
    a=0;
    while(a<10) a++;
    return a;
}

E' il seguente in Assembly:
Codice:
as:
        push    rbp
        mov     rbp, rsp
        mov     DWORD PTR [rbp-4], edi
        mov     DWORD PTR [rbp-4], 0
        jmp     .L2
.L3:
        add     DWORD PTR [rbp-4], 1
.L2:
        cmp     DWORD PTR [rbp-4], 9
        jle     .L3
        mov     eax, DWORD PTR [rbp-4]
        pop     rbp
        ret
 
  • Mi piace
Reazioni: whatisdone