Sezione |
Indirizzi Base
Registri Interni
|
Palestra Livello Apprendisti Livello Esperti |
Programmare in Assembly |
Esercizio n° A010 3/6 [53 di 157] |
|
|
||
Gestione Caratteri - Stampa di una stringa a colori con la M_msgC | ||
Analisi del Codice [2 di 4] |
|
Il Main Program di EsA010.ASM è la raccolta di 4 modi alternativi per la stampa di stringhe, tutti basati sulla nuova procedura BIOSmsg; naturalmente sarà l'ultimo quello più gratificante, ma vediamoli (in estratto) uno dopo l'altro: |
|
|
Esercizio |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
Il primo metodo riprende e ottimizza il codice dell'esercizio EsA009.ASM sostituendo con 3 sole righe tutto il codice assembly compreso tra la pulizia dello schermo (CALL BIOScls) e l'attesa della pressione di un tasto qualunque (CALL KeyWait); per facilitarti il confronto riscrivo le 10 istruzioni in parola, affidandole di volta in volta alle nuove 3 righe di programma. |
|
|
La Macro M_CURSOR 8,15 sostituisce le 3 istruzioni che fissano la posizione di stampa (nell'esempio precedente la posizione era diversa ma il concetto non cambia) |
|
|
|
Questo primo impatto con una macroistruzione mi da'
l'occasione per sottolineare l'effettiva utilità
di questa importante struttura:
|
|
|
l'istruzione centrale rimane inalterata: per puntare la stringa da stampare (Testo01) è ancora necessario affidarsi al registro SI (LEA SI,Testo01) |
|
|
|
La chiamata della nuova procedura BIOSmsg è poi la chiave vincente di questo esercizio; essa gestisce la messa a video della stringa terminata con 00H esattamente come le 6 rimanenti istruzioni (che ovviamente adesso le appartengono): |
|
|
Questo primo metodo consente il controllo della posizione di stampa ma non quello del colore, che sarà comunque assunto dalla variabile locale ATTRIB, necessariamente definita nell'Area destinata ai dati del programma e inizializzata con il codice di colore desiderato. |
|
Naturalmente la macro M_CURSOR è a tua completa disposizione; per poter fruire del suo efficiente servizio basta, come anticipato nella pagina precedente, scrivere all'inizio del sorgente le tre righe if1 ... include GIOBE.MAC ... endif... e far trovare nella cartella di lavoro (C:\Arch-Lab\Lavoro) la libreria Giobe.MAC. |
|
Palestra Apprendisti | Esercizio n° A010 3/6 | |||||||
53 di 157 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|