Sezione |
Indirizzi Base
Registri Interni
|
Palestra Livello Apprendisti Livello Esperti |
Programmare in Assembly |
Esercizio n° A007 2/5 [40 di 157] |
|
|
||
Gestione Caratteri - Stampa 10 caratteri uguali a colori | ||
Analisi del Codice [1 di 3] |
|
Il compito di questo progetto è quello di mettere in fila 10 lettere "A" a colori; sembra di dover fare cose già fatte, ma non è così. |
|
Il precedente EsA004.ASM ci ha già insegnato come mettere in fila 10 lettere "A", ma per farlo ha utilizzato una procedura (la BIOSchr) basata su una Funzione BIOS potente per un verso e limitata per l'altro. | |
Parlo della Funzione 0EH di INT 10H potente perchè aggiorna la posizione del cursore, ma limitata perchè non ammette l'uso del colore. |
|
Per risolvere il problema bisogna per forza dotare la chiamata della Funzione 09H di INT 10H (oggetto dei precedenti esercizi e capace di stampare a colori) con una serie di ulteriori chiamate BIOS in grado di leggere la posizione del cursore prima della stampa, aggiornarla e fissarla al nuovo valore dopo la stampa. |
|
Ecco nella solita casella di testo lo schema del codice assembly del Main Program di EsA007.ASM: |
|
|
Esercizio |
NB: se il testo nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
Si nota la fase iterativa (il ciclo tra xxx00: e LOOP xxx00) da eseguirsi 10 volte (MOV CX,10), preceduta dalla solita pulizia dello schermo (CALL BIOScls) e dalla predisposizione del punto di stampa iniziale (trattata nell'esercizio precedente) e seguita dalla classica attesa della pressione di un tasto qualunque, preludio della corretta chiusura del programma. |
|
E si nota anche di cosa si occupa
la fase iterativa:
|
|
Nella prossima pagina mi soffermerò sui dettagli; nel frattempo scarica e stampa il sorgente, così nella descrizione avrai comunque la visione d'insieme di questo sofisticato progetto. |
|
Palestra Apprendisti | Esercizio n° A007 2/5 | |||||||
40 di 157 |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|