18 Aug 2019 - 06:53--=[Computer]=----=[Computer]=----=[Musica]=----=[Musica]=----=[Geometra]=----=[Geometra]=----=[Download]=----=[Download]=----=[Link]=----=[Link]=----=[Articoli]=----=[Articoli]=--
Indice Computer Computer/ Programmazione/ Assembly/ Ps/ Capitolo 1/


Struttura di un programma assembler


Un programma in linguaggio assembler è costituito da una serie di comandi (o statement), che si possono suddividere in:

  1. istruzioni;
  2. pseudo-istruzioni (dichiarazioni di variabili);
  3. direttive (per l'assemblatore).
Le istruzioni assembler consentono di specificare le istruzioni macchina in forma simbolica, e servono quindi a definire il contenuto delle locazioni di memoria che costituiscono il testo del programma. Le pseudo-istruzioni consentono di definire il contenuto delle locazioni di memoria che costituiscono i dati del programma (la pila ha dimensioni standard, e viene definita implicitamente). Le direttive forniscono all'Assemblatore informazioni utili ai fini della traduzione da linguaggio Assembler a linguaggio macchina.
Un'istruzione o una pseudo-istruzione occupa una riga di testo, ed è composta dai seguenti quattro campi:
nome: CODICE operandi #commento
Il primo campo è opzionale. Il nome rappresenta l'indirizzo simbolico della prima locazione di memoria corrispondente all'istruzione o alla pseudo-istruzione, ed è costituito da un identificatore scelto dal programmatore: esso deve essere immediatamente seguito dal carattere ':' (due punti). Un identificatore è formato da lettere, cifre, e dai caratteri '_' (sottolineatura o underscore) e '.' (punto): il primo carattere non può essere una cifra. L'assemblatore è case sensitive, per cui una lettera maiuscola è differente da una lettera minuscola corrispondente. Il campo CODICE è costituito da una parola chiave del linguaggio a caretterizza l'istruzione o la pseudo-istruzione. Il campo operandi ha una struttura che dipende da quanto specificato nel compo CODICE. L'ultimo campo è opzionale: se presente, è costituito da un carattere '#' (graticola o cancelletto) seguito da un commento (che termina a fine riga).
Notare che in una riga di testo può essere presente soltanto un nome (seguito dal carattere ':'): questo nome rappresenta l'indirizzo della prima locazione di memoria corrispondente all'istruzione o alla pseudo-istruzione immediatamente successiva. Pertanto, un'istruzione o una pseudo-istruzione può anche avere più nomi, e tutti corrispondono allo stesso indirizzo.
Una direttiva ha invece la forma:
.CODICE operandi
Il primo campo è costituito dal carattere '.' (punto) e da una parola chiave del linguaggio cha caratterizza la direttiva. Il campo operandi ha una struttura che dipende da quanto specificato dalla parola chiave CODICE.
Un'intera riga di programma può essere bianca, ovvero essere costituita per intero da un commento.
Un programma Assembler ha la forma riportata in » questo esempio «.
Il punto di inizio dell'intero programma (entry point) è costituito dall'istruzione di nome start, nome che deve essere dichiarato globale (direttiva .GLOBAL): la lista di istruzioni che inizia con quella di nome start costituisce quindi il programma principale.
Le istruzioni del programma principale che vengono eseguite per ultime restituiscono il controllo al sistema operativo. Per tornare correttamente al sistema operativo DOS si utilizza la coppia di istruzioni:
MOVB $0x4C, %AH INT $0x21
Per quanto riguarda la modalità di psecifica degli operandi e delle regole di indirizzamento, si vedano i Paragrafi 3.3 e 3.5. Inoltre, le istruzioni con codice operativo INT verranno introdotte in seguito, per il momento ci limiteremo a osservare che queste rappresentano una forma per chiamare sottoprogrammi, alternativa all'istruzione CALL.

Vai Prossimo
Vai Indice
--=[Home page]=----=[Home page]=----=[Forum]=----=[Forum]=----=[lingua]=----=[lingua]=----=[Statistiche]=----=[Statistiche]=----=[Cerca in questo sito]=----=[Cerca in questo sito]=----=[Info sul copyright]=----=[Info sul copyright]=----=[Scegli le impostazioni che preferisci]=----=[Scegli le impostazioni che preferisci]=----=[Scrivi al webmaster]=--
vPHPvHTMLvCSS