Assembly/Convenzioni

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search
Assembly
modifica
Indice

Data la grande varietà di assemblatori, ogni casa costruttrice di processori ha implementato il suo, questa vuole essere una semplice introduzione generica sulla scrittura di programmi in Assembly.

Convenzioni principali[modifica]

Queste convenzioni sono generalmente seguite da tutti i produttori di assemblatori per cui una volta imparate servono anche se si cambia assembler.
Il corpo del programma e formato da 3 costrutti: etichetta, istruzione e commento.
La separazione tra questi può essere indifferentemente lo spazio, la tabulazione o il ritorno carrello (a capo).
Ogni riga del programma è formata da uno o più dei costrutti precedenti. Sono ammesse righe vuote.

L'etichetta
parte dalla prima colonna ed è meglio farla terminare con il due punti ':', vi sono assembler che li vogliono altri che non li vogliono ed altri ancora a cui è indifferente che vi siano o meno. Deve iniziare con un carattere alfabetico o un carattere speciale ammesso. La lunghezza ammessa è peculiarità dell'assemblatore (nei primi assembler era limitata a 8 caratteri ora non più).
L'istruzione
è formata da un codice operativo e da nessuno o più operandi. Può essere scritta indifferentemente in maiuscolo o minuscolo o in modo misto.
Il commento
inizia con il punto e virgola ';' e dopo si può mettere qualunque carattere. Alcuni assembler accettano l'asterisco '*' in prima colonna e dopo l'istruzione tutto è commento.

Esempi[modifica]

; Questo è un commento
;
;
label:  ; dowhile(ecc.. Commento all'etichetta.<br>
3loop:  ; Etichetta non ammessa, produce un errore (nessun riferimento)

       Nop          ; Istruzione con il solo codice operativo e nessun operando.
       ld      a,b  ; Istruzione di carico del registro B nell'accumulatore.
       MOV     AX,BX  ; Istruzione di carico del registro BX nel registro AX.
       jmp     label   ; salto incondizionato alla label sopra

Non si possono mettere più istruzioni su una riga del programma.
Nella prima colonna vengono messe le label per le entrate nelle routine o i rientri per le istruzioni di salto condizionato o incondizionato
L'istruzione o codice Mnemonico va posizionato con un tab o spazi dalla 2 seconda colonna in poi.
Le operazioni della istruzioni sono staccate con un tab od alcuni spazi