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° A001 7/9 [11 di 157] 

               

Analisi del Codice · Compilazione (UnaTantum) · Analisi in ambiente Debug · Analisi del Listato · Conclusioni

Gestione Caratteri - Stampa di un solo carattere
Analisi in ambiente Debug [2 di 2]

               

bulletL'aspetto strano di queste istruzioni è dovuto al fatto che Debug tenta di tradurre quello che trova, anche dopo l'ultimo byte sicuro del programma:
bulletpoichè la memoria in cui viene ospitato il nostro eseguibile è sporca, il suo codice macchina va praticamente a sovrascrivere solo una parte dei valori binari già presenti
bulleti bytes eccedenti quelli dell'eseguibile conservano il valore che avevano prima del suo caricamento, del tutto imprevedibile perchè frutto di un precedente (inopinabile) utilizzo della ram di sistema
bullet solo un occhio educato intuisce di che si tratta (NB: in questo caso): sono chiaramente caratteri Ascii stampabili, sintomo del fatto che la stessa memoria ha ospitato, in precedenza, un testo..
bulletin particolare: 20H è spazio; quelli tra 61H e 7AH (come nel nostro esempio) sono lettere minuscole; quelli tra 41H e 5AH sono lettere maiuscole; la cosa  è facilmente verificabile: prova a digitare il comando interno - d117 e vedrai che la sensazione era esatta:

  

 

bullet A ulteriore verifica, poichè subito dopo il caricamento i registri BX,CX contengono un numero a 32 bit con la lunghezza del file COM, basta dare con il comando interno - r per controllare:

  

  

bulletIl numero cercato è (BX,CX = 0000 0017)esadecimale, cioè 23; conta i bytes dall'indirizzo di partenza, 0100H, e verifica!
bullet Per altro la cosa è visibile anche con il comando dos DIR esa*.* , digitato al prompt non appena sei uscito da Debug (con il comando interno - q): ecco cosa appare:

  

  

bulletIl file EsA001.COM è lungo proprio 23 bytes...

    

Pagina Precedente Palestra Apprendisti Pagina Successiva Esercizio n° A001 7/9   Torna alla Home  della Palestra Assembly Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
11 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