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

Esercizio n° A005 3/4 [34 di 157] 

               

Analisi del Codice · Analisi in ambiente Debug · Conclusioni

Gestione Caratteri - Stampa una carattere a colori
Analisi in ambiente Debug

               

bulletSiamo gi al quinto esercizio... I meccanismi e le prassi per organizzare il tuo lavoro e per aiutarti a capire i segreti dovrebbero essere ormai chiari..:
bulletscaricare il sorgente EsA005.ASM nella cartella C:\Arch-Lab\Lavoro
bullet compilare il sorgente con il gestore d'Ambiente Macro
bulletcliccare sull'icona  DOS , qui sotto [NB: se il click sull'icona non funziona scrivi c:\arch-lab\bin\sys\assembler.pif direttamente nel campo indirizzo del Browser]
bulletanalizzare l'eseguibile EsA005.COM con Debug, insieme, on-line
   
bulletQuesto esercizio non presenta particolari novit, esclusa la presenza di una variabile locale, che il sorgente ha definita con il nome ATTRIB e inizializzata al valore 1FH; nella shell dos digita debug esa005.com e conferma con Invio:
   

Console - Video & Tastiera

Esercizio MOLTO FACILE Esercizio
Apri una finestra DOS su Arch-Lab Scarica il file
EsA005.TXT
Mostra l'Effetto Prova l'eseguibile COM Scarica il codice Sorgente ASM
  
bulletOrmai dovremmo essere in grado di specificare ogni parte del codice macchina mostrato da Debug:
  
bulletil salto iniziale (JMP 0104) alla prima locazione del Main program
bulletla chiamata della procedura che pulisce lo schermo (CALL 0123, BIOScls)
bulletle 6 istruzioni successive, che organizzano la chiamata di sistema della Funzione 09H (MOV AH,09) di INT 10H (INT 10), per mettere a video il carattere "A" (MOV AL,41) nel colore indicato dal byte contenuto nella locazione 0103H e copiato in BL (MOV BL,CS:[0103])
bulletla chiamata della procedura che aspetta la pressione di un tasto qualunque (CALL 011E, KEYwait)
bullet le 2 indispensabili istruzioni finali, per la corretta chiusura del programma
bulletil codice della KEYwait, posta all'indirizzo 011EH, 4 bytes (displacement 0004H) pi avanti rispetto alla chiamata
bulletil codice della BIOScls, posta all'indirizzo 0123H, 28 bytes (displacement 001CH) pi avanti rispetto alla chiamata
  
bulletMerita un po' d'attenzione l'istruzione MOV BL,CS:[0103], per la sua struttura, ricca di ben 5 bytes:
  
bulletil primo, 2EH, il costo imposto dal segment override CS:, il famoso byte in pi
bulleti 2 successivi, 8AH e 1EH, sono i codici operativi di MOV BL,[...]
bulletgli ultimi 2, 03H e 01H, rappresentano l'operando 0103H, cio l'indirizzo della locazione locale ATTRIB, compilato dall'assemblatore alla rovescia, in accordo con la nota regola Lo-Hi (Low-High)
  
bullet Naturalmente irrilevante e senza significato il tentativo (da parte di Debug) di tradurre in istruzione (POP DS) il byte 1FH contenuto all'indirizzo 0103H; importante invece il valore del byte, cio del colore scelto per il carattere, nel nostro caso bianco brillante su blu.
  
bullet

Se ti pu interessare ti ho preparate il solito estratto del file Listato EsA005.LST, generato dallassemblatore per questo esercizio:

  

Scarica il file
EsA005.LST

    

Pagina Precedente Palestra Apprendisti Pagina Successiva Esercizio n° A005 3/4   Torna alla Home  della Palestra Assembly Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
34 di 157
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157

    

PALESTRA » Apprendisti » Es.001 Es.002 Es.003 Es.004 Es.005 Es.006 Es.007 Es.008 Es.009 Es.010 Es.011 Es.012
Es.013 Es.014 Es.015 Es.016 Es.017 Es.018 Es.019 Es.020 Es.021 Es.022 Es.023 Es.024
Es.025 Es.026 Es.027 Es.028 Es.029 Es.030 Es.031 Es.032 Es.033

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

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