Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Palestra Livello Apprendisti Livello Esperti

Home » Programma il Computer » Tutorial Assembly

Palestra Assembly - Home Page

  Programmare in Assembly

Esercizio n° A010 5/6 [55 di 157] 

               

Analisi del Codice · Conclusioni

Gestione Caratteri - Stampa di una stringa a colori con la M_msgC
Analisi del Codice  [4 di 4]

               

bulletEcco la linea d'arrivo di questo lungo Giro: certamente qualcuno di voi, particolarmente sagace, a fatto 1+1..:

  

 

"se una Macro sostituisce più istruzioni con una sola riga di programma, rendendo snello il codice assembly e permettendo di passare sulla stessa riga anche le caratteristiche del lavoro desiderato, perchè non fare la stessa cosa con le 3 righe appena analizzate?"

  

bullet

Certo... Il quarto metodo chiude per sempre il discorso: con una sola riga di codice assembly potrai stampare qualunque stringa in qualunque posto con qualunque colore:

  

Console - Video & Tastiera

Esercizio MOLTO FACILE Esercizio
NB: se il testo nell'Area  ti sembra strano
     
installa il  font
Giobe.TTF: clicca qui!!
Mostra l'Effetto Prova l'eseguibile COM Scarica il codice Sorgente ASM

  

 

La Macro M_msgC Testo01, 14,15,4FH raccoglie sostanzialmente le 3 Macro di prima e di 3 ne fa una:

  

  

 

Oltre alla indiscutibile estetica non bisogna sottovalutare la sua praticità: è comodo elencare l'indirizzo (etichetta) della stringa da stampare, la sua riga e colonna di stampa e il suo colore, lasciando al compilatore il compito di mettere tutto al posto giusto.

 

 

Il parametro Testo01 rappresenta il nome di un'etichetta:
il suo compito è quello di identificare la zona di memoria destinata ad ospitare il testo da visualizzare e di consentire all'assemblatore di localizzarla; il testo da visualizzare si deve definire nella zona detta area destinata ai dati del programma...
... scrivendolo tra virgolette, dopo l'etichetta e la parola chiave DB; sappiamo che questa struttura è espressamente richiesta dalla procedura che gestisce la stampa a video (BIOSmsg) che esige anche che ogni testo finisca con il carattere terminatore 00H, per cui è necessario aggiungere sempre (dopo il testo tra virgolette) una virgola e la parola 00H, cioè ,00H

 

I parametri 14, 15 indicano rispettivamente i numeri di riga,colonna, cioè le coordinate del punto di stampa desiderato:
ricordo che l'angolo in alto a sinistra ha coordinate 0, 0 le quello in basso a destra, di solito 24, 79
la posizione di stampa corrente è indicata dal punto in cui sta lampeggiando il cursore hardware del video
la posizione del cursore viene aggiornata automaticamente per cui, dopo la stampa della stringa, il cursore si trova a destra dell'ultimo carattere messo a video

 

Il parametro 4FH indica il byte di attributo di colore:
rappresenta contemporaneamente il colore di primo piano (quello dei pixel che formano il carattere) e il colore dello sfondo (quello dei pixel rimanenti) e si può costruire, bit dopo bit, sulla base dello schema descritto in questa pagina.
le strutture delle Librerie Giobe che gestiscono la stampa a video (come la nostra M_msgC) richiedono la presenza di una variabile locale, anch'essa da definire con il nome ATTRIB nella zona detta area destinata ai dati del programma...; è bene scriverla in tutti i nostri sorgenti futuri, aggiungendo sempre la riga di programma:
Con la pratica, dopo pochi esercizi, sarai in grado di costruire mentalmente il codice per ognuno degli accoppiamenti di colore possibili; per ora puoi consultare le figure dei Colori senza Flash o dei Colori con Flash e scegliere tra i numeri proposti

  

Suggerimento Per stampare un messaggio a colori basta scrivere una sola riga di programma con il nome della pseudoistruzione (Macro) M_msgC, seguito dai 4 parametri previsti dalla sua sintassi, l'indirizzo della stringa da stampare, le coordinate del punto di stampa e il colore.

    

Pagina Precedente Palestra Apprendisti Pagina Successiva Esercizio n° A010 5/6   Torna alla Home  della Palestra Assembly Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
55 di 157
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157

    

PALESTRA » Apprendisti » Es.001 Es.002 Es.003 Es.004 Es.005 Es.006 Es.007 Es.008 Es.009 Es.010 Es.011 Es.012
Es.013 Es.014 Es.015 Es.016 Es.017 Es.018 Es.019 Es.020 Es.021 Es.022 Es.023 Es.024
Es.025 Es.026 Es.027 Es.028 Es.029 Es.030 Es.031 Es.032 Es.033

| Che serve per iniziare | Prima compilazione | Livello Esperti |

TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati