Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 196 di 198] 

    

    XLAT - Estrae in accumulatore il dato di una Tabella
     
bulletQuesta istruzione estrae il dato a 8 bit dalla locazione di memoria puntata da DS:[BX+AL] e lo memorizza nell'accumulatore AL: ovviamente il valore originale di AL viene perduto. E' la stessa istruzione denominata XLATB.
bulletIn pratica questa magica istruzione utilizza il numero senza segno di AL come offset, al fine di indirizzare dinamicamente una delle locazioni (al massimo 256) della tabella puntata da DS:BX.
bulletSe il puntatore all'inizio della tabella è quello di default (DS:BX) non è necessario specificare un operando.
bulletSe, come operando, si specifica l'etichetta di una locazione di memoria, essa è riferita per default al segmento DS; è comunque possibile forzare un altro registro di segmento, con l'override.
bulletNaturalmente l'uso di questa istruzione ha senso solo se, in precedenza:
bulletil registro BX (o EBX) è stato inizializzato con l'etichetta che individua il primo dato della tabella.
bulletil registro AL indica il numero d'ordine (la posizione in tabella) del dato desiderato.
bulletPer esempio anticipando la XLAT con LEA BX,Tabella e MOV AL,12, vedi esempio successivo).
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
       XLAT Puntatore   Accumulatore << dato contenuto in DS:[BX+AL]
 

Esempio di Applicazione

Cicli di Clock Mem
Acces

Bytes
Flag   influenzate
Mnemonico Operandi 86 268 386 486 O D I T S Z A P C

XLAT

 

11 5 5 4 1 1                           

XLAT

[Depo01]

XLAT

CS:[Depo01]

         
bulletLa tabella evidenzia che l'istruzione non modifica alcuna flag. La figura seguente mostra le risorse richieste da questa istruzione in funzione degli operandi coinvolti (leggi le istruzioni):
          

Addr

Codifica Masm

Sequenza Bytes

Istruzione

0100 55 55 Tabella  DB 55H
---- ---------------- ----------------- ------- ----------------------
0101
0102
0103
0105
0107
D7
D7
2E D7
26 D7
36 D7
D7
D7
2E D7
26 D7
36 D7
XLAT
XLAT [Tabella]
XLAT CS:[Tabella]
XLAT ES:[Tabella]
XLAT SS:[Tabella]
         
bulletIn pratica questa istruzione si comporta come l'istruzione:
          
MOV  AL,[BX+AL]
         
bulletSebbene la sua struttura sia piuttosto originale, si comprende l'utilità di questa istruzione: offre lo strumento ideale per convertire dati da un tipo ad un altro.
bulletL'esercizio d'esempio mostra  come sia facile trasformare un valore esadecimale 0xH (da 00H a 0FH) nel corrispondente simbolo Ascii (da 30H='0' a 39H='9' e da 41H='A' a 46H='F'):

Addr

Codifica Masm

Istruzione

0100 30 31 32 33 34 35
36 37 38 39 41 42
43 44 45 46
Tabella DB "0123456789ABCDEF"
---- ---------------- ------- ----------------------
0110
0112
0116
----
0117
0119
011D
B0 09
8D 1E 0100
D7
----------------
B0 09
8D 1E 0100
D7



-------

MOV   AL,09H
LEA   BX,Tabella
XLAT  Tabella
----------------------
MOV   AL,09H
LEA   BX,Tabella
XLAT
     
bulletL'analisi del codice suggerisce queste considerazioni:
bullet per inizializzare l'offset BX del puntatore all'inizio della tabella si è fatto uso l'uso dell'istruzione LEA.
bulletil segment si ritiene quello di default, DS.
bulletl'istruzione XLAT è compilata allo stesso modo, sia che l'etichetta venga dichiarata sia al contrario.
bulletDopo l'esecuzione delle 3 istruzioni in AL c'è il valore esadecimale 39H, che corrisponde al carattere Ascii '9'

    

Pagina Precedente Scheda n° 07 Pagina Successiva Istruzioni Cpu 80x86 Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Istruzione 196 - XLAT

    

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