Sezione |
Indirizzi Base
Registri Interni
|
Palestra Livello Apprendisti Livello Esperti |
Programmare in Assembly |
Esercizio n° A007 3/5 [41 di 157] |
|
|
||
Gestione Caratteri - Stampa 10 caratteri uguali a colori | ||
Analisi del Codice [2 di 3] |
|
Ecco finalmente un progetto un po' impegnativo; se hai svolto con diligenza gli altri 6 non dovresti aver difficoltà a riconoscere in questo codice un pezzettino di ciascuno dei precedenti, con 2 piccole novità che scopriremo strada facendo... |
|
Ma andiamo con ordine; il cappello del programma è già stato descritto: pulizia dello schermo e dalla predisposizione del punto di stampa iniziale (fissata alla riga12, colonna39): |
|
|
Esercizio |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
Segue il ciclo con la sua parte iterativa, da eseguire 10 volte (MOV CX,10): |
|
|
La prima operazione consiste nella lettura della posizione di stampa corrente e costituisce anche la prima novità, rispetto agli esercizi precedenti; il compito è affidato alla Funzione 03H di INT 10H, che lascia le coordinate in DL (colonna) e in DH (riga). |
|
Possiamo notare anche la precedente istruzione PUSH CX, il cui compito è quello di salvare (nello stack) il valore corrente del contatore, molto prezioso. |
|
Segue la stampa del carattere a colori, di cui già sappiamo tutto; anche in questo caso ti faccio notare la coppia di istruzioni estreme (PUSH DX e POP DX) aggiunte, rispetto alla versione discussa in precedenza, per non rischiare di perdere le coordinate di stampa corrente, appena assunte dalla Funzione 03H: |
|
|
Non dimenticare che nell'Area destinata ai dati del programma deve essere definita e inizializzata obbligatoriamente la variabile locale di nome ATTRIB, indispensabile per assicurare la gestione del colore del carattere da stampare; essa contiene il byte (attributo di colore) da mettere in BL. |
|
Palestra Apprendisti | Esercizio n° A007 3/5 | |||||||
41 di 157 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|