Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 015 di 198] 

    

    BTR - Copia il valore di un bit nella flag di Carry e poi lo azzera
     
bulletQuesta istruzione non appartiene al Set dell'8088/86; si usa solo con 80386/486.
bulletIl suo compito è quello di copiare un bit dell'operando destinazione nella flag di Carry, per poter esercitare comodamente un test (Bit Test and Reset) su di esso, mediante le istruzioni di salto condizionato dalla stessa flag, JC e JNC.
bulletNB: dopo averlo copiato nella flag di Carry il bit sotto test dell'operando destinazione viene forzato a zero.
bulletL'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).
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
BTR Destinazione, Sorgente
BTR DatoDaTestare, Posizione
 flag Carry << Valore del bit selezionato
  Valore del bit selezionato  << 0
 

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

BTR

DX,BX

no no 6 6 no 3,7                 #

BTR

[Depo02],CX

no no 13 13 no 3,7
                    

BTR

AX,02H

no no 6 6 no 4,8

BTR

[Depo02],02H

no no 8 8 no 4,8
         
bulletLa tabella evidenzia che l'istruzione altera solo la flag di Carry. Inoltre mostra le possibili tipologie tra gli operandi:
bullet tra registro (a 16 o a 32 bit) e registro (a 16 o 32 bit) 
bullet tra memoria (a 16 o a 32 bit) e registro (a 16 o 32 bit) 
bullet tra registro (a 16 o a 32 bit) e costante a 8 bit 
bullet tra memoria (a 16 o a 32 bit) e costante a 8 bit 
          
bulletLa 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 B3 DA
0F B3 1D 00000100
0F BA F0 02
0F BA 35 00000100 02

66 F B3 D8
66 F BA F0 02
0F B3 DA
0F B3 1D 00 01 00 00
0F BA F0 02
0F BA 35 00 01 00 00

66 0F B3 D8
66 0F BA F0 02
BTR DX,BX
BTR [Depo02],BX
BTR AX,02H
BTR [Depo02],02H

BTR EAX,EBX
BTR EAX,02H

    

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 015 - BTR

    

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