|
Tutorial
|
Dettaglio Istruzioni |
|
|
 |
Istruzioni
della Cpu 80x86 |
SCHEDA n° 07 [I/
016
di 198] |
 |
|
BTS - Copia il valore
di un bit nella flag di Carry e poi lo forza a 1 |
|
 | Questa istruzione non
appartiene al Set dell'8088/86; si usa solo con 80386/486. |
 | Il suo compito è quello di copiare un
bit dell'operando destinazione nella
flag di Carry, per poter esercitare comodamente un test (Bit
Test and Set) su di esso, mediante le istruzioni di salto
condizionato dalla stessa flag, JC
e JNC. |
 | NB: dopo
averlo copiato nella flag di Carry il bit sotto test
dell'operando destinazione viene forzato a
uno. |
 | L'operando destinazione può avere dimensione di una word o di
una doubleword ( con 80386/486),
mentre il valore suggerito dall'operando sorgente
(un numero a 8 bit o un registro
da 16 o 32 bit ( con 80386/486)
specifica la posizione (offset)
del bit che si desidera testare (da 0 a 31). |
 | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
): |
BTS
Destinazione, Sorgente
BTS DatoDaTestare, Posizione |
flag
Carry << Valore del bit selezionato
Valore del bit selezionato << 1 |
| |
|
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 |
|
BTS
|
DX,BX
|
no |
no |
6 |
6 |
no |
3,7 |
|
|
|
|
|
|
|
|
# |
|
BTS
|
[Depo02],CX
|
no |
no |
13 |
13 |
no |
3,7 |
| |
|
|
|
|
|
|
|
|
BTS
|
AX,02H
|
no |
no |
6 |
6 |
no |
4,8 |
|
BTS
|
[Depo02],02H
|
no |
no |
8 |
8 |
no |
4,8 |
 | La tabella evidenzia che l'istruzione altera
solo la flag di Carry. Inoltre mostra le possibili
tipologie tra gli operandi:
 | tra registro (a 16 o a 32 bit) e registro
(a 16 o 32 bit) |
 | tra memoria (a 16 o a
32 bit) e registro (a 16 o 32 bit) |
 | tra registro (a 16 o a 32 bit) e costante
a 8 bit |
 | tra memoria (a 16 o a 32 bit) e costante
a 8 bit |
|
 | La figura seguente mostra le risorse
richieste da questa istruzione in funzione degli operandi
e del tipo di indirizzamento coinvolti (leggi le
istruzioni);
da notare che, per evitare errori di compilazione, è necessario
specificare, all'inizio del sorgente, la
pseudoOperazione
.386: |
|
Addr |
|
Codifica
Masm |
|
Sequenza
Bytes |
|
Istruzione |
|
|
|
|
|
|
|
|
.386 |
|
0100 |
|
55AA |
|
AA
55 |
|
Depo02 |
DW
55AAH |
| ---- |
|
---------------- |
|
----------------- |
|
------- |
---------------------- |
0102
0106
010E
0113
011C
011F |
|
0F
AB DA
0F AB 1D 00000100
0F BA E8 02
0F BA 2D 00000100
02
66 0F AB D8
66 F BA E8 02 |
|
0F AB DA
0F AB 1D 00
01 00 00
0F BA E8 02
0F BA 2D 00
01 00 00
66 0F AB D8
66 0F BA E8 02 |
|
|
BTS
DX,BX
BTS [Depo02],BX
BTS AX,02H
BTS [Depo02],02H
BTS EAX,EBX
BTS EAX,02H |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|