Compilare un programma di assemblaggio con NASM
Un assemblaggio trasformerà la tua codifica di basso livello, usando il mnemonico, in un linguaggio macchina che può essere compreso dal processore. Questo articolo non ti insegnerà a programmare con NASM, ma a creare un comando eseguibile per Linux e Windows dal codice sorgente NASM.
- Compilare un programma Assembly con NASM per Linux
- Creare il file sorgente
- Assemblare il file sorgente
- Creare l'eseguibile
- Esecuzione del programma
- Compilare un programma Assembly con NASM per Windows
- Installazione del software
- Creare un file sorgente
- Assemblare il file sorgente
- Creazione ed esecuzione del programma
Compilare un programma Assembly con NASM per Linux
Creare il file sorgente
È possibile utilizzare qualsiasi editor di testo, come Gedit, KWrite o XEmacs, per farlo. Quando salvi il tuo file, dagli l'estensione .asm .Assemblare il file sorgente
Per questo passaggio, avrai bisogno del software NASM installato sul tuo computer.Se stai usando Debian o Ubuntu, digita semplicemente il comando:
sudo apt-get install nasm
Se si dispone di un'altra distribuzione Linux, è necessario utilizzare il gestore pacchetti della propria distribuzione (ad es. Urpmi, Yum, Emerge) o scaricare NASM dal sito ufficiale.
Utilizzare la seguente riga di comando per assemblare il file sorgente:
nasm -f elf test.asm
Nell'esempio, il file .asm salvato si chiama test.asm . Questo creerà un file chiamato test.o nella directory corrente.
NB Questo file non è eseguibile. È ancora un file oggetto.
Creare l'eseguibile
Ora che abbiamo il nostro file oggetto, chiamato test.o, dobbiamo creare il nostro eseguibile.Il tuo programma può iniziare con una procedura chiamata _start . Ciò significa che il tuo programma ha il suo punto di ingresso, senza l'uso della funzione principale . Tuttavia, dovrai usare la "l" per creare il tuo eseguibile:
ld test.o -o test
In alternativa, il tuo programma può iniziare con una procedura chiamata main . Dovrai usare gcc per creare il tuo eseguibile:
gcc test.o -o test
Ora, il tuo eseguibile viene creato, testato e posizionato nella directory corrente.
Esecuzione del programma
Per eseguire il programma chiamato test, basta digitare questo comando:. / test
Compilare un programma Assembly con NASM per Windows
La funzione principale non è disponibile in Windows e deve essere sostituita da WinMain .Se il tuo punto di ingresso è _start o main, dovrebbe essere cambiato in _WinMain @ 16 . Inoltre, modifica il ret alla fine della procedura per ret 16 :
sezione .textglobale
:
mov eax, 0
ret 16
Installazione del software
È necessario prima installare //ccm.net/download/download 1025 NASM. Conserva un archivio da qualche parte, poiché verrà utilizzato in seguito.Il passaggio più difficile sarà l'installazione di MinGW, che è un ambiente di sviluppo gratuito per Windows:
Inizia scegliendo l'ultima versione di MingGW dall'AZ. Esegui il programma di installazione, ma non aggiornare a questo punto. Lascia tutte le opzioni selezionate per impostazione predefinita e attendi che venga installata.
Ora è necessario inserire NASM nell'ambiente di sviluppo MinGW. Disimballare l'archivio NASM. Dovresti ottenere una cartella contenente, tra le altre cose, un file chiamato nasm.exe . Copia questo file nella directory C: \ MinGW \ bin .
Creare un file sorgente
Come Linux, non è necessario utilizzare un editore specifico per creare un file sorgente per NASM. Puoi usare il Blocco note . Ma prendi nota che tende ad aggiungere l'estensione .txt ai file che crea. Per rimuovere qualsiasi ambiguità, si consiglia di visualizzare le estensioni dei file.In ogni caso, evitare processori di testi, come Word o WordPad .
Se lo desideri, puoi anche utilizzare un editor che usi la sintassi NASM, come un IDE NasmEdit .
Assicurati di salvare il tuo file sorgente con l'estensione .asm .
Assemblare il file sorgente
Aprire la finestra di comando andando su Start> Esegui e digitando cmd.exeUsando il comando cd, vai alla cartella contenente il tuo file sorgente. Una volta che siete in questa directory, assemblate il vostro file sorgente ( test.asm ) con questo comando:
nasm -f win32 test.asm -o test.o
Ora hai creato un file oggetto. Il prossimo passo sarà trasformarlo in un file eseguibile.
Creazione ed esecuzione del programma
Dalla finestra di comando, digitare il comando finale per creare l'eseguibile:ld test.o -o test.exe
Immagine: © Alexandr Pakhnyushchyy - Shutterstock.com