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 Problema · Analisi del Codice · Analisi del Codice- Variante · Conclusioni

Gestione Caratteri - Stampa in posizione dinamica di una cornice di dimensioni fisse
Analisi del Codice Sorgente [1 di 3]

               

bulletLa stampa di una cornice di dimensioni prefissate è piuttosto facile; è necessario anzitutto decidere la sua altezza e la sua larghezza.
bulletIl programma del nostro esempio deve provvedere alla creazione di una cornice in grado di ospitare 10x10 caratteri.
bulletCiò impone subito una considerazione, solo apparentemente scontata: la dimensione effettiva della cornice deve essere di 12x12, perchè ovviamente anche i caratteri ascii usati per racchiudere l'area vogliono il loro posto..

  

bulletLa prima cosa da fare è, dunque, definire le stringhe necessarie per costruire la cornice: naturalmente sarebbe un'inutile spreco prevederne 12, dato che quelle centrali sono identiche tra loro.
bulletBasterà definire le 2 stringhe esterne (Corn00 e Corn02) e quella dell'elemento centrale (Corn01), tutte rigorosamente lunghe 12 caratteri:

  

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

  

bulletPoichè la Macro M_msgC stampa ciascuna stringa nel punto che noi desideriamo, sembra sufficiente:
bullet fissare le 12 coppie di coordinate, tenendo costante la colonna e scegliendo per la riga una sequenza di 12 valori consecutivi
bulletscrivere 12 righe di programma, ciascuna con una Macro M_msgC chiamata a gestire una delle 12 coppie di coordinate

  

  

bulletNaturalmente vale la  regola  secondo cui "quando una parte di programma appare più di una volta c'è qualcosa che non va... (cioè può sempre essere ottimizzarla)"
bulletAnche esteticamente da fastidio dover scrivere 10 volte l'elemento centrale (Corn01) su altrettante righe consecutive, tra le stringhe delle prime 2 (Corn00 e Corn02), per cui conviene affidare questo compito ad un ciclo (loop) predisposto per fare 10 giri...

  

bulletMa nasce subito il problema: come cambiare la riga dentro il ciclo? E' proprio questo il concetto che ti voglio spiegare: bisogna rendere dinamico il valore numerico della riga di stampa, e ciò si può fare solo affidandosi ad una variabile locale o ad un registro.

  

Suggerimento In tutte le strutture delle mie librerie ho scelto di affidare ai registri DH (per la riga) e DL (per la colonna) le informazioni dinamiche legate alla posizione di stampa corrente, cioè alle coordinate del carattere che sta per essere scritto.

    

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