Sezione |
Indirizzi Base
Registri Interni
|
Palestra Livello Apprendisti Livello Esperti |
Programmare in Assembly |
Esercizio n° A006 2/3 [37 di 157] |
|
|
||
Gestione Caratteri - Stampa una carattere a colori | ||
Analisi del Codice |
|
Il codice assembly del Main Program di EsA006.ASM è proposto dalla seguente casella di testo: |
|
|
Esercizio |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
Questo esercizio è sostanzialmente identico al precedente; in aggiunta, subito dopo la pulizia (ClearScreen) dello schermo (CALL BIOScls), viene attivata la Funzione 02H di INT 10H che si occupa di fissare la posizione di stampa corrente, cioè il punto in cui il cursore sta lampeggiando. | |
La successiva chiamata della Funzione 09H di INT 10H (oggetto del precedente esercizio) mette il carattere desiderato proprio in quel punto. |
|
L'osservazione delle 5 nuove
istruzioni ribadisce la presenza di quelle necessarie per effettuare la chiamata di sistema
(MOV AH,02H e
INT 10H), ma evidenzia anche in
quali registri bisogna predisporre i parametri indispensabili per questo
servizio:
|
|
La posizione di stampa
imposta dal nostro esempio è riga12
(MOV DH,12), colonna39 (MOV
DL,39); ricorda che
in assembly (nel
Modo Testo standard 03H):
|
|
Non dimenticare che nell'Area destinata ai dati del programma (non visibile nella casella di testo..) deve essere definita e inizializzata obbligatoriamente la variabile locale di nome ATTRIB, indispensabile per assicurare la gestione del colore del carattere da stampare; essa contiene il byte (attributo di colore) da mettere in BL. |
|
Non ritengo necessaria l'ulteriore analisi on-line in ambiente Debug, che peraltro sei ora in grado di gestire da solo; nella trattazione degli esercizi precedenti ti ho già svelato tutti i segreti di un eseguibile come questo... |
Se ti può interessare ti ho comunque preparato l'estratto del file Listato EsA006.LST, generato dall’assemblatore per questo esercizio: |
|
|
Palestra Apprendisti | Esercizio n° A006 2/3 | |||||||
37 di 157 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|