| Poichè è la prima volta...
desidero darti alcuni consigli:
| gli esercizi vanno eseguiti
rigorosamente nella sequenza proposta, uno
dopo l'altro: sono stati pensati per introdurre
difficoltà crescenti e, spesso, quelli che seguono sono l'evoluzione
del precedente |
| è 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 |
| negli scritti che ti proporrò ci sono gli
mnemonici delle istruzioni: ovviamente
non ne sai nulla ma, uno alla volta,
diventeranno di tua conoscenza; per ora li puoi subire
così come sono, intuendo la loro operatività, anche consultando i
ricchi commenti ad essi associati |
| a proposito, impara fin d'ora a
dare presenza ai tuoi sorgenti, con l'uso del
tasto TAB: ogni riga di programma ha sempre 4
campi che puoi imparare a 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) |
|
|
|
|
|
|
|
|
|
Importante:
impara a scegliere con intelligenza
le etichette da associare ai punti interni del codice che
stai scrivendo; certamente si tratta di scelte
decisamente personali, comunque legittime e indiscutibili; io
posso solo proporti il mio punto di vista, fermo restando che la libertà
è un bene impagabile:
| se possibile usa parole con
meno di 8 caratteri (così da essere
ospitate all'interno del Campo Etichetta,
senza invadete il Campo Mnemonico);
l'uso di stringhe troppo lunghe non giova alla
leggibilità e all'ordine
di un sorgente ASM |
| usa sempre stringhe
significative e sinteticamente
emblematiche, cioè in grado di rendere con pochi
caratteri il senso dell'oggetto
a cui si riferiscono; di solito questo consiglio è utile per
definire variabili,
costanti o
procedure (per esempio
Byt2Dec,
Via_Cur, Random,
...), non certo per le etichette intermedie
del codice |
| non sprecare energie per le
etichette intermedie del
codice; è assurdo (salvo in caso eccezionale) creare e usare
stringhe del tipo sotto,
giù,
rientra, fine, ecc..:
dopo un po' la nostra fantasia comincia ad essere frustrata e
non sapremo più cosa inventare.
Personalmente uso la tecnica delle etichette di servizio, del tipo
XXX01,
XXX02, .., cioè stringhe numerate in modo progressivo, in
grado di svolgere egregiamente il proprio compito senza
far scoppiare il cervello in
fantasie non necessarie |
| lo stesso discorso vale per le
etichette intermedie delle
procedure: anche in questo caso
conviene usare etichette di servizio, numerate in modo progressivo
ma ora con una radice del nome della procedura. Per esempio
Byt2_0,
Byt2_1..., con riferimento alla mia
Byt2Dec |
| idem per la definizione delle
etichette destinate alle
variabili; per esempio quando le
stringhe di testo sono numerose
(sempre salvo eccezioni) è inutile perdere tempo a pensare
definizioni differenziate: molto meglio
Testo01, Testo02,..
o Cornic1,
Cornic2, .. , comunque raggruppando le etichette in
categorie emblematiche numerate |
|
|