Come compilare in assembly con GCC
Il compilatore gcc mi permette di compilare un codice scritto in assembly.
Ad esempio, scrivo un sorgente in linguaggio assembly usando la sintassi IA32 AT&T.
.LC0:
.string "a=%d"
.text
.globl main
.type main, @function
main:
.LFB0:
pushq %rbp
movq %rsp, %rbp
movl $5, %ebx
movl %ebx, %esi
movl $.LC0, %edi
call printf
movl $0, %eax
leave
ret
Poi salvo il sorgente nel file di testo prova.s
A questo punto assemblo il codice assembly in linguaggio macchina tramite il compilatore gcc.
gcc -c prova.s -o prova.o
Il compilatore crea un file oggetto prova.o in linguaggio macchina tramite l'assembler
Per eseguire il programma devo trasformare l'oggetto in eseguibile
gcc prova.o -o prova
Il compilatore assembla e collega i moduli in un unico file eseguibile prova.
E così via.