Matteo34
Nuovo Utente
- Messaggi
- 104
- Reazioni
- 3
- Punteggio
- 45
Una domanda veloce, sono assai confuso : (
Da quel che so, la sintassi assembly usata da un processore non cambia in base al sistema operativo o mi sbaglio?
Se disassemblo un programma su Ubuntu mi esce questo:
Se disassemblo su windows invece questo:
Perché su Linux usa la sintassi AT&T e su Windows quella Intel, cambia la sintassi da un sistema operativo all'altro, la CPU che ho è una Intel, quindi mi sarei aspettato la sintassi intel.
Perché succede questa cosa?
Da quel che so, la sintassi assembly usata da un processore non cambia in base al sistema operativo o mi sbaglio?
Se disassemblo un programma su Ubuntu mi esce questo:
Codice:
main:
pushq %rbp
movq %rsp, %rbp
movl $5, -4(%rbp)
movl $6, -8(%rbp)
movl -4(%rbp), %edx
movl -8(%rbp), %eax
addl %edx, %eax
movl %eax, -12(%rbp)
movl $0, %eax
popq %rbp
ret
Codice:
main:
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-4], 5
mov DWORD PTR [rbp-8], 6
mov edx, DWORD PTR [rbp-4]
mov eax, DWORD PTR [rbp-8]
add eax, edx
mov DWORD PTR [rbp-12], eax
mov eax, 0
pop rbp
ret
Perché succede questa cosa?