|
 |
Programmare in Assembly |
Premesse Importanti 2/2
[3 di 57] |
 | Permettimi anche di ricordarti alcuni consigli:
 | è opportuno che i concetti imparati
di volta in volta non vengano dimenticati:
ti consiglio un quaderno degli esercizi,
sul quale riporterai le informazioni che più ti hanno colpito: è il modo
migliore per memorizzare le cose per sempre... |
 | in particolare la pagina "Conclusioni",
presente in ogni esercizio, è una vera e propria
raccolta di Trucchi del mestiere: se
impari e ti ricordi queste
pagine diventerai presto autonomo e sicuro. |
 | gli argomenti teorici
coinvolti negli esercizi sono tutti
documentati; ad essi rimandano i link
interattivi, presenti in gran quantità nelle pagine del mio sito.
Almeno all'inizio non è necessario cliccarci sopra:
ci sono e nessuno li toglierà..; ci puoi tornare dopo aver fatto un po' di
pratica |
 | quando scrivi il sorgente, in ambiente Editor, impara fin
d'ora ad usare il
tasto TAB: ogni riga di programma ha sempre 4
campi che conviene separare appunto con
tabulati: |
|
Campo
Etichetta |
|
Campo
Mnemonico |
|
Campo
Operando |
|
Campo
commento
(fortemente consigliato!!) |
|
|
Inizio: |
|
MOV |
|
AH,00H |
|
;carica il registro AH con il
;numero esadecimale 00H |
| |
|
MOV |
|
AL,03H |
|
;carica il registro AL con il
;numero esadecimale 03H |
| |
|
INT |
|
10H |
|
;chiama la procedura di sistema |
|
 | impara anche a commentare ogni
riga di programma, così come ho fatto io per te: quando
riprenderai in mano il sorgente, dopo qualche tempo, sarai grato a te
stesso... |
 | i commenti si
aggiungono dopo un ; (punto e virgola)
sul quarto tabulato;
commentare un sorgente è un'arte:
nell'esempio precedente il commento è becero (la pedissequa traduzione
dell'istruzione è inutile...); e più intelligente e utile interpretarla,
per esempio così: |
|
Campo
Etichetta |
|
Campo
Mnemonico |
|
Campo
Operando |
|
Campo
commento
(fortemente consigliato!!) |
|
|
Inizio: |
|
MOV
MOV
INT |
|
AH,00H
AL,03H
10H |
|
;Provvede alla cancellazione del
;video, posizionando il cursore
;alla riga0,colonna0,in alto a
;sinistra (a livello BIOS) |
|
|
|
|
|
|
|
|
 | Infine, ricorda che tutti i sorgenti hanno
una
struttura, necessaria per consentire al compilatore di tradurre
in numeri binari (codice
macchina) le parole che hai scritto
nel sorgente (codice assembly); questa
struttura è sempre
la stessa e va copiata di programma in programma. |
 |
Nella descrizione di ogni cosa ci sono
argomenti di contorno, di solito
noiosi e appena
tollerati, ma indispensabili
per dare struttura
al lavoro: di solito si affrontano con un po' di insofferenza, una volta per
tutte: in Palestra Esperti queste
informazioni sono
date per acquisite. |
 |
Se ti rimanesse qualche dubbio
sono comunque descritte Una Tantum nel
primo esercizio Apprendisti; ecco gli argomenti che può
rispolverare: |
| |
 |
|
Struttura comune a tutti i programmi Sorgente assembly
Parte iniziale (PAGE,
TITLE, SUBTTL,
presentazione),
inizio segmento di codice _prog SEGMENT,
ASSUME, ORG 0100H, inizio codice (INIZIO: JMP
EsE001), AREA
DATI del programma, main program (proc NEAR -
ENDP), chiusura segmento di codice (_prog ENDS),
fine codice (END
INIZIO) |
 |
|
Dettaglio sulle Dichiarazioni iniziali, comuni ad ogni Sorgente
Per far trovare le Macro della libreria
Giobe.MAC (if1...
include GIOBE.MAC ...
endif), per far trovare le procedure esterne da assumere dalla
libreria Giobe.LIB (EXTRN...:NEAR),
per condividere la variabile locale con le procedure esterne (PUBLIC
ATTRIB), per definire la variabile locale condivisa (ATTRIB
DB 1FH) |
 |
|
Dettaglio sulla Parte iniziale, comune ad ogni Sorgente
Dopo le direttive
SEGMENT,
ASSUME e
ORG,
la prima istruzione in assoluto (INIZIO:
JMP EsE001) serve
per puntare il Main
program, saltando le eventuali
AREA DATI e ZONA
procedure interne del programma |
 |
|
Fase di Creazione dell'eseguibile COM
Scaricare il sorgente, aprire la shell DOS,
controllare se il file è presente, iniziare la sessione di lavoro: (MACRO
esa001 /e), leggere il messaggio iniziale, premere un tasto qualunque per
entrare nell'editor, aggiornare il testo,
"2" per produrre l'eseguibile, "3" per vedere l'eseguibile,
"1" per rieditare il sorgente, un tasto qualunque per
tornare al prompt del DOS |
|
 |
Ti ricordo che per organizzare e realizzare un progetto
in Assembly è indispensabile: |
| |
 |
|
conoscere gli argomenti del
primo capitolo
del Tutorial
(il
processore e le sue
istruzioni; il Debug e le
Librerie di Sistema) |
 |
|
disporre e conoscere compilatore,
linker e editor, argomenti trattati nel
secondo capitolo
del Tutorial |
 |
|
aver scaricato e letto i preziosissimi
Manuali stampabili |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|