Come tradurre da C ad Assembly con GCC

Per tradurre un programma scritto in C in linguaggio Assembly con il compilatore GCC utilizzo la sintassi con l'opzione -S (maiuscola).

gcc -S programma.c

Dove programma.c è il file sorgente del programma scritto in linguaggio C.

Per tradurre in IA32 aggiungo l'opzione -m32

gcc -S programma.c -m32

Il compilatore legge il file sorgente .c e crea un file tradotto in Assembly con l'estensione .s dello stesso nome.

Esempio

Scrivo un semplice programma in C

#include <stdio.h>
int main() {
int a=1;
printf("hello world");
}

Lo salvo con nome prova.c

Per tradurre il sorgente C in assembly digito

gcc -S prova.c

Il compilatore crea un file sorgente con lo stesso nome con estensione.s

Il contenuto del file prova.s è la traduzione in assembly

il programma in Assembly

Ovviamente, si tratta di una traduzione automatica e non ottimizzata.

Tuttavia, è ciò che il compilatore crea come passaggio intermedio durante la compilazione da sorgente C a oggetto eseguibile.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

Il compilatore GCC