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° A004 4/6 [29 di 157] 

               

Analisi del Codice · Analisi in ambiente Debug · Conclusioni

Gestione Caratteri - Stampa una stringa in bianco e nero
Analisi in ambiente Debug  [2 di 3]

               

bullet Vediamo che succede con il comando interno - d 100 (teoricamente descritto qui):
NB
: se il click sull'icona nera non funziona scrivi
c:\arch-lab\bin\sys\assembler.pif direttamente nel campo indirizzo del Browser
              

Console - Video & Tastiera

Esercizio FACILE Esercizio
Apri una finestra DOS su Arch-Lab Scarica il file
EsA004.TXT
Mostra l'Effetto Prova l'eseguibile COM Scarica il codice Sorgente ASM
              
bullet Per poter godere della discussione allego anche il codice disassemblato con il comando interno - u:
              
              
bullet Dopo un po' che pratichi debug capirai al volo che:
bullet i bytes compresi tra 41H e 5AH sono lettere maiuscole; nel nostro codice li ho colorati di arancione
bullet i bytes compresi tra 61H e 7AH sono lettere minuscole; nel nostro codice li ho colorati di giallo
bullet i bytes uguali a 20H sono spazi; nel nostro codice li ho colorati di verde
bullet gli altri bytes presenti tra lettere e spazi sono interpunzioni, segni, ecc..; nel nostro codice li ho colorati di fucsia
bullet la zona di ogni singolo testo termina sempre con un byte a 00H; nel nostro codice li ho colorato di rosso
              
bullet Dunque, quando nel disassemblato si notano codici macchina come questi bisogna mangiare la foglia: ignorare la traduzione mnemonica e mettere in chiaro il possibile testo con il comando interno - d.
              
bulletVoglio solo farti notare l'ultima riga della figura precedente; mostra un codice dell'istruzione LEA SI,[0103], e merita alcune puntualizzazioni:
bulletintanto usa in modo illogico le parentesi quadre: in una precedente pagina ho anticipato che la notazione [xx] significa "il contenuto della locazione puntata da xx"; dunque perdona debug (per altro ....molto buono) e fai finta di non vedere: in SI non finisce il contenuto della locazione 0103H ma il suo indirizzo, proprio il numero 0103H (l'istruzione dovrebbe essere scritta cos: LEA SI,Testo01)
bulletil suo codice macchina coinvolge 4 bytes, tra i quali si distingue l'operando 0103H, cio l'indirizzo del primo carattere della stringa da puntare (e stampare)
bulletl'indirizzo compilato in memoria alla rovescia, cio prima 03H e poi 01H: i processori della famiglia 80x86 assumono sempre (dalla memoria di programma) i dati pi grandi di 8 bit a partire dalla parte bassa, con la nota tecnica Lo-Hi (Low-High).
bulletla colorazione blu di entrambe le figure mette in evidenza questo operando (un numero binario a 16 bit, word) e lascia intendere che i rimanenti 2 (8DH e 36H) sono i codici operativi di LEA SI,AddressOffset.

    

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