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 3/6 [53 di 157] 

               

Analisi del Codice · Conclusioni

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

               

bulletIl 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:

  

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

  

bulletIl 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:
sostituire le  3 righe precedenti con quella della Macro non cambia il codice macchina generato dal compilatore
poichè l'operazione di predisposizione della posizione di stampa non può essere fatta diversamente (servono sempre le 3 istruzioni) la loro sostituzione con M_CURSOR 8,15 rende solo più leggibile il sorgente asm (il che non è poco..)
l'uso della Macro consente inoltre di passare i parametri, cioè di affidare al compilatore il compito di collocare nei corretti registri i valori numerici necessari (nel nostro esempio 8 in DH, riga di stampa, e 15 in DL, colonna di stampa)

 

 

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):

  

  

bulletQuesto 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.

  

bulletNaturalmente 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.

    

Pagina Precedente Palestra Apprendisti Pagina Successiva Esercizio n° A010 3/6   Torna alla Home  della Palestra Assembly Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
53 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