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 6/6 [31 di 157] 

               

Analisi del Codice · Analisi in ambiente Debug · Conclusioni

Gestione Caratteri - Stampa una stringa in bianco e nero
Conclusioni

               

 

 

    

Cosa hai imparato
 

    

 

bulletIl testo di una stringa ascii deve essere definito tra virgolette e terminato con 00H.

 

bulletPer puntare un testo conviene sempre utilizzate l'istruzione LEA (sebbene altri preferiscano MOV con l'operatore OFFSET).

 

bulletLa presenza di parentesi quadre, [...] (come nella MOV AL,CS:[SI]) si legge: "il contenuto nella locazione puntata da"; se non si aggiunge altro il segmento di riferimento DS.

 

bulletPersonalmente amo preporre il segment override CS: alle parentesi quadre, CS:[...], per una lungimirante visione della programmazione assembly...

 

bulletSebbene la cosa sia irrilevante ai fini del progetto assembly, abbiamo scoperto che il processore preleva i dati pi grandi di 8 bit a partire dal byte meno significativo; per questo l'assemblatore compila (e fa trovare nella memoria di programma...) gli indirizzi alla rovescia, in sintonia con la regola Lo-Hi (Low-High).

 

bulletSempre irrilevante ai fini del progetto assembly, la tecnica di associare un numero con segno detto displacement, alle istruzioni di salto e di chiamata, per codificare l'indirizzo d'arrivo.
bulletGi sapevamo che se positivo esprime il numero di bytes da saltare in avanti esclusi quelli delle istruzioni di partenza e di arrivo; in questo esercizio abbiamo verificato che se negativo esprime il numero di bytes da saltare indietro compresi quelli delle istruzioni di partenza e di arrivo.

 

bulletL'uso dell'operatore SHORT nei salti non condizionati(JMP) consente di risparmiare un byte di codice macchina, se la distanza tra il punto di partenza e quello d'arrivo non eccessiva.

 

bulletIl problema dell'eccessiva distanza tra il punto di partenza e quello d'arrivo molto frequente anche nei salti condizionati (JE, JGE,...): bisogna imparare a evitarlo altrimenti la compilazione non sar possibile (error A2053: Jump out of range by nnn bytes).

 

bulletIl comando interno - u mostra spesso sequenze di istruzioni incomprensibili: abbiamo imparato a tradurre i rispettivi codici macchina con i caratteri ascii di un probabile testo e ad usare il comando interno - d per averne conferma.

 

 

    

Prova ad introdurre modifiche al sorgente....
 

    

 

bulletNella shell DOS fai una copia del sorgente EsA004.ASM (per non perdere l'originale): copy esa004.asm prove0004.asm e conferma con Invio.

 

Console - Video & Tastiera Esercizio FACILE Esercizio
Se la finestra non simile a quella riprodotta qui sotto leggi le istruzioni  in questa pagina Apri una finestra DOS su Arch-Lab Scarica il codice Sorgente ASM
NB: se il click sull'icona nera non funziona scrivi c:\arch-lab\bin\sys\assembler.pif direttamente nel campo indirizzo del Browser

 

bulletLancia macro prove004 /e e, quando sei nell'editor dell'Ambiente Assembler puoi, per esempio, modificare il testo a tuo piacimento..

 

 

    

Cosa ti aspetta
 

    

 

bulletIl prossimo esercizio ti fornisce una potenza in pi: scrivere a colori!!
bulletSe saprai usare questa possibilit con parsimonia e gusto, potrai scrivere programmi di grande effetto..

    

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