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

Schede del Tutorial

Home » Programma il Computer » Tutorial Assembly

Le Schede del Tutorial

  Le PseudoOperazioni di MASM

SCHEDA n° 02 [ 10  di 26] 

    

           Aggiornato 11 maggio 2007
    Gestione dei Dati - DB, DW
     
bulletCominciamo con i dati a 8 bit (byte), definiti cioè con DB (Define Byte); nonostante l'apparenza l'assemblatore riserva per essi uno o più bytes di memoria, di solito inizializzati con valori che rappresentano numeri interi, stringhe con uno o più caratteri, espressioni costanti (come 5*2):

      

ATTRIB   DB 0FH            ;numero esadecimale
datoB    DB 15             ;numero decimale
binarioB DB 00001111B      ;numero binario
ignotoB  DB ?              ;dato non inizializzato
         ;----------------------------------------
testo    DB 'Esempio di testo',00H ;stringa Ascii
         ;----------------------------------------
tabella  DB 01,'   Lunedì',00H ;
         DB 03,'Mercoledì',00H ; tabella
         DB 02,'  Martedì',00H ;
tabellaB DB 01H, 02H, 03H, 04H ; 4 dati a 8 bit
         ;----------------------------------------
areaZerB DB 16 DUP (00H)       ;16 bytes a 0
areaTxt  DB 16 DUP ('GIO_2001');16*8 caratteri
bulleti primi 3 sono esprimono lo stesso numero in esadecimale, in decimale e in binario; notare la H finale nel primo e la B finale nel terzo, mentre nel secondo non è necessario aggiungere nulla.
bulletil dato successivo è certamente a 8 bit ma il suo valore non è inizializzato: spetta alle istruzioni del programma dare valore iniziale al contenuto di questa locazione, a dimostrazione del fatto che tutti i dati che stiamo descrivendo sono sostanzialmente variabili.
bulletl'etichetta testo mostra una stringa terminata con un byte a 0: anche le sequenze di caratteri Ascii sono dunque di tipo byte: ciascun carattere è infatti associato ad un byte. La stringa può essere lunga fino alla fine della linea.
bulletl'etichetta tabella mostra la tecnica migliore per definire serie di dati, anche costituite, come in questo caso, da più tipi; naturalmente nel caso di una sequenza di numeri (come per tabellaB) la dimensione per ciascuno di essi è 8bit. Da notare la necessità di definire solo un'etichetta: l'inizio di ogni "voce" delle tabelle è facilmente ricostruibile con una semplice somma. Da notare anche che gli elementi di ogni riga sono separati da una virgola.
bulletle 2 definizioni successive sono particolarmente degne di nota per la presenza dell'operatore DUP: all'etichetta areaZero corrisponde una zona di 16 bytes a 0 e a areaTxt un'area di 128 bytes contenente 16 volte gli otto bytes della stringa Ascii 'GIO_2001.

      

bulletI dati a 16 bit (word) sono definiti con DW (Define Word); per essi l'assemblatore riserva uno spazio pari a multipli di 2 bytes, di solito inizializzati con valori che rappresentano  numeri interi, stringhe da uno o 2 caratteri Ascii (come 'ab'), espressioni costanti (come 5*2):

      

RamVideo DW 0B800H           ;numero esadecimale
datoW    DW 47104            ;numero decimale
binarioW DW 1011100000000000B;numero binario
ignotoW  DW ?              ;dato non inizializzato
         ;----------------------------------------
testo    DW 'ab'               ;max 2 char Ascii
         ;----------------------------------------
tabellaW DW 0001H, 0002H, 0003H; 3 dati a 16 bit
         ;----------------------------------------
areaZerW DW 8  DUP (0000H)     ;8 word a 0
Valgono le medesime osservazioni specificate per DB; in aggiunta ricordiamo che vale la regola Lo-Hi, per cui
bulletdi ogni word è inserita in memoria prima la parte bassa (nella locazione puntata dall'etichetta) e poi la parte alta (nella locazione successiva).
bulletse il dato è una stringa di 2 caratteri (nell'esempio 'ab') il carattere a destra ('b') è posto nella locazione puntata dall'etichetta, mentre il primo ('a') è messo nella locazione successiva.
bulletse il dato è una stringa di un carattere (per esempio 'a'): in questo l'unico carattere ('a') è posto nella locazione puntata dall'etichetta, mentre nella locazione successiva è inserito uno 0.

    

Pagina Precedente Scheda n° 02 Pagina Successiva Pseudo Operazioni di MASM Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Scheda n° 02 -  10
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

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
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