Assembly/Convenzioni: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
fix + tl
Ramac (discussione | contributi)
m wikificazione
Riga 1:
{{Linguaggio Assembly}}
Data la grande varietà di assemblatori, ogni casa costruttrice di [[w:processore|processori]] ha implementato il suo, questa vuole essere una semplice introduzione generica sulla scrittura di programmi in assemblyAssembly.<br><br>
 
==Convenzioni principali==
Queste convenzioni sono generalmente seguite da tutti i produttori di assemblatori per cui una volta imparate servono anche se si cambia assembler.<br>
Line 6 ⟶ 7:
La separazione tra questi può essere indifferentemente lo spazio, la tabulazione o il ritorno carrello (a capo).<br>
Ogni riga del programma è formata da uno o più dei costrutti precedenti. Sono ammesse righe vuote.<br>
;L'etichetta<br>
: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ù).<br>
;L'istruzione<br>
:è 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<br>
: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.<br>
<br>===Esempi:<br>===
<source lang="asm">
etichetta:<br>
; Questo è un commento
 
;
; Questo è un commento
;
label: ; dowhile(ecc.. Commento all'etichetta.<br>
;
3loop: ; Etichetta non ammessa, produce un'errore (nessun riferimento)<br>
label: ; dowhile(ecc.. Commento all'etichetta.<br>
3loop: ; Etichetta non ammessa, produce un'errore (nessun riferimento)<br>
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
 
Nop ; Istruzione con il solo codice operativo e nessun operando.
Non si possono mettere più istruzioni su una riga del programma.<br>
ld a,b ; Istruzione di carico del registro B nell'accumulatore.
Nella prima colonna vengono messe le label per le entrate nelle routine o i rientri per le istruzioni di salto condizionato o incondizionato<br>
MOV AX,BX ; Istruzione di carico del registro BX nel registro AX.
L'istruzione o codice Mnemonico va posizionato con un tab o spazi dalla 2 seconda colonna in poi.<br>
jmp label ; salto incondizionato alla label sopra
Le operazioni della istruzioni sono staccate con un tab od alcuni spazi <br>
</source>
Non si possono mettere più istruzioni su una riga del programma.<br/>
Nella prima colonna vengono messe le label per le entrate nelle routine o i rientri per le istruzioni di salto condizionato o incondizionato<br/>
L'istruzione o codice Mnemonico va posizionato con un tab o spazi dalla 2 seconda colonna in poi.<br/>
Le operazioni della istruzioni sono staccate con un tab od alcuni spazi <br/>
 
[[Categoria:Assembly|Convenzioni]]