Intel x86 Assembly Language & Microarchitecture x86 Assembly Language


Esempio

La famiglia dei linguaggi assembly x86 rappresenta decenni di progressi nell'architettura originale Intel 8086. Oltre a diversi dialetti basati sull'assembler utilizzato, nel corso degli anni sono state aggiunte ulteriori istruzioni per i processori, registri e altre funzionalità, rimanendo comunque retrocompatibili con l'assembly a 16 bit utilizzato negli anni '80.

Il primo passo per lavorare con l'assembly x86 è determinare quale sia l'obiettivo. Se si sta cercando di scrivere codice all'interno di un sistema operativo, ad esempio, si vorrà anche determinare se si sceglierà di utilizzare un assemblatore autonomo o funzionalità di assemblaggio inline incorporate di un linguaggio di livello superiore come C. Se si Desiderate programmare il "bare metal" senza un sistema operativo, è sufficiente installare l'assemblatore di vostra scelta e capire come creare codice binario che può essere trasformato in memoria flash, immagine avviabile o altrimenti caricato in memoria al posizione appropriata per iniziare l'esecuzione.

Un assemblatore molto popolare che è ben supportato su un numero di piattaforme è NASM (Netwide Assembler), che può essere ottenuto da http://nasm.us/ . Sul sito NASM è possibile continuare a scaricare l'ultima versione di build per la propria piattaforma.

finestre

Sono disponibili per Windows sia le versioni a 32 bit che a 64 bit di NASM. NASM è dotato di un comodo programma di installazione che può essere utilizzato sull'host Windows per installare automaticamente l'assemblatore.

Linux

Potrebbe essere che NASM sia già installato sulla tua versione di Linux. Per verificare, eseguire:

nasm -v

Se il comando non viene trovato, sarà necessario eseguire un'installazione. A meno che non si stia facendo qualcosa che richiede funzionalità NASM all'avanguardia, il modo migliore è utilizzare lo strumento di gestione dei pacchetti integrato per la propria distribuzione Linux per installare NASM. Ad esempio, in sistemi derivati ​​da Debian come Ubuntu e altri, eseguire quanto segue da un prompt dei comandi:

sudo apt-get install nasm

Per i sistemi basati su RPM, potresti provare:

sudo yum install nasm

Mac OS X

Le versioni recenti di OS X (incluso Yosemite ed El Capitan) sono fornite con una versione precedente di NASM preinstallata. Ad esempio, El Capitan ha installato la versione 0.98.40. Mentre questo probabilmente funzionerà per quasi tutti gli scopi normali, in realtà è piuttosto vecchio. Al momento della pubblicazione, la versione 2.11 del NASM è stata rilasciata e 2.12 ha un numero di candidati disponibili.

È possibile ottenere il codice sorgente NASM dal link precedente, ma a meno che non si abbia una necessità specifica di installare dal sorgente, è molto più semplice scaricare il pacchetto binario dalla directory di rilascio di OS X e decomprimerlo.

Una volta decompresso, si consiglia vivamente di non sovrascrivere la versione di NASM installata sul sistema. Invece, potresti installarlo in / usr / local:

 $ sudo su
 <user's password entered to become root>
 # cd /usr/local/bin
 # cp <path/to/unzipped/nasm/files/nasm> ./
 # exit

A questo punto, NASM è in /usr/local/bin , ma non è nel tuo percorso. Ora dovresti aggiungere la seguente riga alla fine del tuo profilo:

 $ echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile

Questo anteporrà /usr/local/bin al tuo percorso. L'esecuzione di nasm -v al prompt dei comandi ora dovrebbe visualizzare la versione corretta, più recente.