Un programma complesso può essere suddiviso in tre sezioni -

I dati di sezione,

Il bss sezione e

Il testo di sezione.

Il dati Sezione
Il dati di sezione è utilizzata per la dichiarazione dei dati o costanti inizializzati. Questi dati non cambia in fase di esecuzione. È possibile dichiarare diversi valori costanti, nomi di file o la dimensione del buffer, ecc, in questa sezione.

La sintassi per la sezione di dati dichiarazione è -

section.data
Il bss Sezione
Il bss sezione è utilizzata per la dichiarazione di variabili. La sintassi per la sezione BSS dichiarazione è -

section.bss
Il testo di sezione
Il testo sezione è utilizzata per mantenere il codice effettivo. Questa sezione deve iniziare con la dichiarazione _start globale, che dice al kernel dove inizia l'esecuzione del programma.

La sintassi per la sezione testo dichiarazione è -

section.text
global _start
_start:
Commenti
Linguaggio Assembly commento inizia con un punto e virgola (. Può contenere qualsiasi carattere stampabile compresi vuoto. Può apparire su una riga da solo, come -

; questo programma mostra una scritta sullo schermo
o, sulla stessa linea con un'istruzione, come -

add eax, ebx ; adds ebx to eax
Dichiarazioni Assembly Language
Programmi in linguaggio assembly sono costituite da tre tipi di dichiarazioni -

Istruzioni o istruzioni eseguibili,
Direttive assembler o pseudo-ops, e
Macro.
Le istruzioni eseguibili o semplicemente le istruzioni indicano al processore che cosa fare. Ogni istruzione è costituita da un codice operativo (opcode). Ogni istruzione eseguibile genera un'istruzione in linguaggio macchina.

Le direttive assembler o pseudo-ops raccontano l'assemblatore sui vari aspetti del processo di assemblaggio. Si tratta di non eseguibile e non generano istruzioni in linguaggio macchina.

Le macro sono fondamentalmente un meccanismo di sostituzione del testo.

Sintassi del bilancio dell'Assemblea di Lingua
Istruzioni in linguaggio Assembly sono iscritti una dichiarazione per riga. Ogni dichiarazione segue il seguente formato -

[label] mnemonic [operands] [;comment]
I campi nelle parentesi quadre sono opzionali. Una istruzione di base ha due parti, la prima è il nome dell'istruzione (o mnemonico), che deve essere eseguita, e la seconda sono gli operandi oi parametri del comando.

Di seguito sono riportati alcuni esempi di istruzioni tipici linguaggio assembly -

INC COUNT ; Increment the memory variable COUNT

MOV TOTAL, 48 ; Transfer the value 48 in the
; memory variable TOTAL

ADD AH, BH ; Add the content of the
; BH register into the AH register

AND MASK1, 128 ; Perform AND operation on the
; variable MASK1 and 128

ADD MARKS, 10 ; Add 10 to the variable MARKS
MOV AL, 10 ; Transfer the value 10 to the AL register
Il Programma Mondiale Ciao a Assemblea
Il seguente codice di linguaggio assembly visualizza la stringa 'Ciao Mondo' sullo schermo -

section .text
global_start ;must be declared for linker (ld)

_start: ;tells linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel

mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel

section .data
msg db 'Hello, world!', 0xa ;our dear string
len equ $ - msg ;length of our dear string
Quando il codice di cui sopra è compilato ed eseguito, esso produce il seguente risultato -

Hello, world!
Compilazione e Collegamento di un programma di montaggio in NASM
Assicurarsi di aver impostato il percorso di NASM e ld binari nella variabile d'ambiente PATH. Ora, adottare le seguenti misure per la compilazione e il collegamento del programma di cui sopra -

Digita il codice sopra utilizzando un editor di testo e salvarlo come hello.asm.

Assicurarsi che ci si trova nella stessa directory in cui è stato salvato hello.asm.

Per assemblare il programma, tipo nasm -f elf hello.asm

Se c'è un errore, vi verrà chiesto su che in questa fase. In caso contrario, un file oggetto del vostro programma chiamato hello.o verrà creato.

Per collegare il file oggetto e creare un file eseguibile denominato ciao, tipo ld -m elf_i386 -s -o ciao hello.o

Eseguire il programma digitando ./ciao

Se avete fatto tutto correttamente, verrà visualizzato 'Ciao, mondo!' sullo schermo.