|
Sezione |
Indirizzi Base
Registri Interni
|
| Palestra Livello Apprendisti Livello Esperti |
| Programmare in Assembly |
INTRODUZIONE [1 di 23] |
|
|
|
||
| Gestione Caratteri - Stampa in posizione dinamica di una cornice di dimensioni fisse | ||
| Analisi del Codice Sorgente [2 di 3] |
|
|
| La soluzione è dunque semplice: si carica un contatore (CX) per eseguire un ciclo che chiama 10 volte la Macro M_msgC con gli stessi parametri etichetta, colonna, colore (rispettivamente Corn01, 35, 0EH, quindi statici) ma con il parametro riga passato dinamicamente, cioè affidato al registro DH: |
|
|
|
|
|
Esercizio |
NB: se il testo
nell'Area
ti
sembra strano installa il font Giobe.TTF: clicca qui!! |
|
|
|
|
|
| Si nota che il ciclo deve occuparsi anche di aggiornare (incrementare) la riga corrente, rendendola appunto dinamica. |
|
|
| In realtà, per rendere completamente dinamica la stampa della cornice, è conveniente rendere dinamica anche la colonna, affidandola al registro DL; questa scelta è evidente, nel codice assembly del nostro progetto: |
|
|
|
|
| Prima di ogni cosa il progetto fissa le coordinate del carattere in alto a sinistra della desiderata cornice, a 6 la riga (MOV DH,6) e a 35 la colonna (MOV DL,35) lasciando poi alla procedura il compito di gestire dinamicamente il valore delle coordinate correnti associate a ciascuna delle stringhe necessarie. | |
| Questo vale sia per i tratti esterni (M_msgC Corn00,DH,DL,0EH e M_msgC Corn02,DH,DL,0EH) che per quelli interni, uguali tra loro, messi a video con tecnica iterativa, caricando il contatore (MOV CX,10) ed eseguendo dinamicamente CX volte la macro M_msgC Corn01,DH,DL,0EH, con l'aiuto dell'istruzione LOOP. |
|
|
|
Palestra Esperti |
|
INTRODUZIONE |
![]() |
![]() |
![]() |
||
| 1 di 23 |
|
|
|
|
|
|
Home
|
|
|||||||
|
Motore Ricerca |
|