Compilare un programma di assemblaggio con NASM

La compilazione di un programma di assemblaggio con NASM può essere eseguita su Linux o Windows, poiché NASM è disponibile per entrambe le piattaforme. Netwide Assembler (NASM) è un assemblatore e dissimulatore per l'architettura Intel x86 ed è comunemente usato per creare programmi a 16 bit, 32 bit (IA-32) e 64 bit (x86-64).

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 .text

globale

:

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.exe

Usando 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

Articolo Precedente Articolo Successivo

I Migliori Consigli