|
[ ] [ ] [ ] [ ] [ ]
Il prologo standard è il seguente:
---------------------------------------------------------------
STACK SEGMENT PARA STACK 'STACK'
DB 1024 DUP (0)
STACK ENDS
DATA SEGMENT PARA PUBLIC 'DATA'
;
; INSERIRE QUI LE VARIABILI DEL PROGRAMMA
; INSERIRE QUI LE VARIABILI DEL PROGRAMMA
; INSERIRE QUI LE VARIABILI DEL PROGRAMMA
;
DATA ENDS
;
CODE SEGMENT PARA PUBLIC 'CODE'
NOME PROC FAR
ASSUME CS:CODE ; IL REGISTRO CS PUNTA AL SEGMENTO
CODICE
PUSH DS ; SALVA L'INDIRIZZO DEL PSP
MOV AX,0 ; INSERISCE UN OFFSET DI 0 E.....
PUSH AX ; ....LA SALVA (L'INDIRIZZO RELATIVO DI RITORNO)
MOV AX,DATA ; SPOSTA IN AX L'INDIRIZZO DEL SEGMENTO
DATI
MOV ES,AX ; STABILISCE L'INDIRIZZAMENTO DEL SEGMENTO
EXTRA
ASSUME ES:DATA ; STABILISCE L'INDIRIZ. NORMALE DEL
SEGMENTO DATI
MOV DS,AX ; STABILISCE L'INDIRIZZAMENTO NORMALE...
ASSUME DS:DATA ; ...DEL SEGMENTO DATI
;
; INSERIRE QUI IL CORPO DEL PROGRAMMA
; INSERIRE QUI IL CORPO DEL PROGRAMMA
; INSERIRE QUI IL CORPO DEL PROGRAMMA
; INSERIRE QUI IL CORPO DEL PROGRAMMA
; INSERIRE QUI IL CORPO DEL PROGRAMMA
;
RET
NOME ENDP
CODE ENDS
END NOME
---------------------------------------------------------------
Come avete potuto notare, in un programma Assembler ci sono almeno 3 definizioni di segmento obbligatorie: - Stack: riserva spazio per lo stack (un accumulatore di dati molto utile); - Data: contiene le variabili del programma; - Code: contiene le istruzioni del programma.
Accettate per buone queste definizioni, anche se non sono molto precise. Ci sarebbero davvero molte cose da dire sul prologo, ma non c'è assolutamente tempo e spazio, inquanto ho davvero troppe cose da dire ancora. Comunque nessuno vieta di andare a comprare un bel manuale dell'architettura dei computer e di studiarvelo. Vi ricordo che non voglio farvi diventare abili programmatori, ma voglio solo darvi una infarinatura di questo stupendo linguaggio di programmazione.
[ ] [ ] [ ] [ ] [ ]
[ :: Indice Corso :: ]
|