Tutorial |
Dettaglio Istruzioni |
Istruzioni della Cpu 80x86 |
SCHEDA n° 07 [I/ 197 di 198] |
|
|
Questa 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 XLAT. | |||||
In 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. | |||||
Se il puntatore all'inizio della tabella è quello di default (DS:BX) non è necessario specificare un operando. | |||||
Se, 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. | |||||
Naturalmente l'uso di questa istruzione ha senso solo se, in
precedenza:
| |||||
Per esempio anticipando la XLATBcon LEA BX,Tabella e MOV AL,12, vedi esempio successivo). | |||||
Le sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni ): |
XLATB Puntatore | Accumulatore << dato contenuto in DS:[BX+AL] | |||||||||||||||
Esempio di Applicazione |
Cicli di Clock | Mem Acces |
N° Bytes |
Flag influenzate | ||||||||||||
Mnemonico | Operandi | 86 | 268 | 386 | 486 | O | D | I | T | S | Z | A | P | C | ||
XLATB |
|
11 | 5 | 5 | 4 | 1 | 1 | |||||||||
XLATB |
[Depo01] |
|||||||||||||||
XLATB |
CS:[Depo01] |
La 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): |
|
In pratica questa istruzione si comporta come
l'istruzione:
| |||||
Sebbene 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. | |||||
L'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'): |
|
L'analisi del codice suggerisce queste considerazioni:
| |||||||
Dopo l'esecuzione delle 3 istruzioni in AL c'è il valore esadecimale 39H, che corrisponde al carattere Ascii '9' |
|
Scheda n° 07 | Istruzioni Cpu 80x86 | |||||||
Istruzione 197 - XLATB |
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|