Sezione

Indirizzi Base Registri Interni
Area Comunicazione BIOS Funzioni BIOS Funzioni DOS
Prefazione Capitolo 1 Capitolo 2 Schede
Libreria ASM Libreria MAC Palestra Progetti ASM
Info Download INDICE

Palestra Livello Apprendisti Livello Esperti

Home » Programma il Computer » Tutorial Assembly

Palestra Assembly - Home Page

  Programmare in Assembly

INTRODUZIONE [1 di 23] 

               

Analisi del Codice · Conclusioni

Gestione Caratteri - Stampa in posizione dinamica di una cornice con taratura
Analisi del Codice Sorgente [2 di 2]

               

bullet Vediamo in dettaglio la nuova procedura Poligono:

  

Console - Video & Tastiera

Esercizio MOLTO FACILE Esercizio
NB: se il testo nell'Area  ti sembra strano
     
installa il  font
Giobe.TTF: clicca qui!!
Mostra l'Effetto Prova l'eseguibile COM Scarica il codice Sorgente ASM

  

bulletNB: nel momento della chiamata della procedura Poligono i registri DH e DL contengono rispettivamente la riga e la colonna del punto in cui verrà stampata la stringa della taratura numerica; ecco i particolari:
  
bulletprovvede alla stampa, in blocco, della taratura numerica superiore:
bulletè necessario definire la stringa Asse_X, contenente i numeri desiderati (" 123456789 ") e terminata con 00H, per assicurare la corretta gestione da parte della macro M_msgC, chiamata a metterla dinamicamente a video, in bianco brillante su nero (M_msgC Asse_X,DH,DL,0FH)
bulletpoichè la stringa Asse_X è invariabile e dedicata alla procedura Poligono possiamo estrarla dall'Area dei dati del programma e inserirla prima della sua definizione; questa scelta rende facile l'eventuale aggiunta di Poligono alle procedure della libreria Giobe.LIB
bulletla sequenza numerica segue automaticamente la cornice in ogni punto dello schermo, essendo vincolata dalle coordinate dinamiche DH e DL
  
bullet stampa la cornice, con l'aiuto della procedura Cornice del progetto scorso, data per commentata, come la parte di contorno:
bullet è necessario porre la cornice (CALL Cornice) sulla riga successiva (INC DH), rispetto alla posizione di stampa della taratura numerica (a cui corrispondono le coordinate iniziali, DH e DL)
bullet per non perdere il valore iniziale delle coordinate (che servirà più avanti per stampare le lettere) è necessario prima salvare (PUSH DX) e poi recuperare (POP DX) nello/dallo stack il valore del registro DX
  
bullet La taratura letterale laterale deve invece essere fatta con l'aiuto della BIOchr1, stampando una lettera dopo l'altra sulla stessa colonna ma su righe consecutive, con l'aiuto di un ciclo FOR, realizzato con la solita istruzione LOOP:
bulletfissa il colore desiderato per le lettere (M_COLOR 0FH), come per i numeri, in bianco brillante su nero
bulletfissa la posizione di stampa (SUB DL,2, ADD DH,2) nel punto previsto per la prima lettera, 2 colonne a sinistra e 2 righe sotto
bulletcarica a 10 il contatore (MOV CX,10), essendo 10 le lettere da stampare
bulletinizializza la procedura, indicandole (MOV AL,"A") quale lettera stampare per prima
bulletle 4 successive istruzioni, fino al gestore del ciclo FOR (l'istruzione LOOP), vengono ripetute 10 volte; in particolare:
--
M_CURSOR DH,DL: fissa la posizione di stampa corrente, mantenendo inalterata la colonna e cambiando la riga
--
CALL BIOchr1: stampa la lettera maiuscola corrente
--
INC AL: predispone il codice Ascii della lettera maiuscola successiva: in effetti il simbolo "A" corrisponde al codice 41H, per cui incrementandone il valore, in AL finisce il numero 42H, proprio il codice Ascii della lettera "B"
-- INC DH: predispone il numero di riga per puntare la successiva (notare che il valore di DL non viene toccato)

    

Pagina Precedente Palestra Esperti Pagina Successiva INTRODUZIONE   Torna alla Home  della Palestra Assembly Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
1 di 23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

    

PALESTRA » Esperti » Es.001 Es.002 Es.003 Es.004 Es.005 Es.006 Es.007 Es.008 Es.009 Es.010 Es.011

| Che serve per iniziare | Prima compilazione | Livello Apprendisti |

TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati