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