Sezione |
Indirizzi Base
Registri Interni
|
Palestra Livello Apprendisti Livello Esperti |
Programmare in Assembly |
Esercizio n° A005 2/4 [33 di 157] |
|
|
||
Gestione Caratteri - Stampa una carattere a colori | ||
Analisi del Codice |
|
La struttura base è sempre la stessa e la parte originale è al solito nell'area dati e nel Main Program di EsA005.ASM, evidenziate dalla casella di testo: |
|
|
Esercizio |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
La nostra attenzione è rivolta alle istruzioni proposte dopo la pulizia (ClearScreen) dello schermo (CALL BIOScls) e prima della classica attesa della pressione di un tasto qualunque, preludio della corretta chiusura del programma. |
|
Le 6 istruzioni centrali descrivono una particolare chiamata di sistema: la Funzione 09H di INT 10H che scrive un carattere a colori a partire dalla posizione di stampa corrente senza aggiornare la posizione del cursore; dopo aver dichiarato il numero 09H della Funzione desiderata (con MOV AH,09H) bisogna specificare (con MOV AL,'A') il carattere che si desidera mettere a video. |
|
Questa chiamata di sistema è una delle più utili della raccolta INT 10H, dedicata al Sottosistema Video. |
|
Per la verità sarebbe in grado di scrivere CX volte lo stesso carattere, in sequenza, ma a noi basta proporlo una volta sola: per questo CX è forzato a 1 (MOV CX,0001). |
|
La gestione del colore del carattere da stampare è affidata al byte (codice dell'attributo di colore) predisposto in BL; nei Modi Testo è diviso in 3 campi, in modo da gestire sia lo Sfondo che il Primo Piano, secondo il seguente schema: |
|
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
flash | Sfondo | Primo Piano | |||||
F | S2 | S1 | S0 | P3 | P2 | P1 | P0 |
|
Il colore associato a ciascun campo è descritto in questa pagina; la combinazione degli 8 bit da luogo a 28 = 256 diversi accoppiamenti: puoi vederne l'effetto ed impararne il codice consultando la pagina dei Colori Assembly in Modo Testo): |
|
E' interessante notare che il valore di questo byte è copiato in BL dalla locazione locale di nome ATTRIB, definita e inizializzata obbligatoriamente dal programma chiamante nella sua area dati; questa filosofia è una anticipazione della successiva fase (proposta a partire dal prossimo esercizio) finalizzata alla creazione di una specifica procedura, nella libreria Giobe.LIB: la BIOchr1. |
|
Palestra Apprendisti | Esercizio n° A005 2/4 | |||||||
33 di 157 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|