|
 |
Programmare in Assembly |
Esercizio n° E004 6/6
[23 di 57] |
 |
ho fissato a 12x12 le dimensioni esterne della
cornice: mi aspettavo un quadrato ma ho ottenuto un rettangolo :
la cosa, seppur fastidiosa, è del tutto normale; la dimensione dei singoli
caratteri proposti a video in modo testo è di 8x16
pixel e questo determina la scalatura
1x2 di ogni immagine. Per ottenere un quadrato è quindi necessario
utilizzare 2 caratteri per ogni colonna: solo così l'immagine prodotta e la
sua dimensione diventa 16x16 pixel... |
 | I parametri passati ad una Macro
possono essere anche registri o il
contenuto di locazioni di memoria;
questa potente disponibilità permette di rendere
dinamico il rispettivo servizio. |
 | Abbiamo visto che M_msgC
Corn00,DH,DL,0EH
funziona alla grande; ma avrebbe funzionato anche M_msgC
Corn00,CS:[riga],CS:[coln],0EH,
nell'ipotesi di avere definito 2 variabili locali
di nome riga (riga
DB 6) e coln (coln
DB 35). |
 | Tutte le strutture delle mie librerie che si occupano della
posizione di stampa corrente utilizzano ai
registri DH per la
riga e DL per la
colonna. |
 | Se la cornice deve
ospitare 10x10 caratteri deve aver
dimensione 12x12, per tener conto anche dei caratteri ascii usati per
racchiudere l'area. |
 | La dimensione dei singoli caratteri (8x16
pixel) rende comunque rettangolare
l'immagine. |
 | Se il tuo sorgente presenta pezzi di
codice simili tra loro conviene estrarli e farne una
procedura interna. |
 | Il programma principale
non deve ospitare i pezzi di codice
specializzati in qualche servizio; per la sua
buona leggibilità questi pezzi vanno estratti
e composti sotto forma di
procedura interna. |
 | Il programma principale
deve limitarsi a
chiamare procedure e a prendere decisioni. |
 | Disponiamo di una procedura in grado di stampare
in ogni punto dello schermo una
cornice dalle
dimensioni fisse, 12x12. |
 | Il prossimo esercizio si ripropone di
aggiungere una taratura numerica e letterale,
rispettivamente sul lato alto e su
quello sinistro. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|