|
Tutorial
|
Dettaglio Istruzioni |
|
|
 |
Istruzioni
della Cpu 80x86 |
SCHEDA n° 07 [I/
011
di 198] |
 |
|
BSR - Esamina
il valore dei bit dal più significativo |
|
 | Questa istruzione non
appartiene al Set dell'8088/86; si usa solo con 80386/486. |
 | Il suo compito è quello di scandire
"indietro" (cioè a partire dal più significativo,
bit15 o bit31) i bit (Bit
Scan Reverse) dell'operando sorgente alla
ricerca del primo di essi che
vale "1":
 | se almeno uno dei bit vale 1 la flag Z
viene forzata a 0 e la sua posizione viene memorizzata nell'operando destinazione. |
 | se non c'è nessun bit a 1 la flag Z è
lasciata a 1. |
|
 | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
): |
BSR
Destinazione, Sorgente
BSR IndiceBit, DaVerificare |
Destinazione
<< puntatore al bit trovato a 1
Destinazione << inalterato (se non ci sono bit a 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 |
BSR
|
BX,DX
|
no |
no |
10+3*n |
6,103-3*n |
no |
3 |
|
|
|
|
|
# |
|
|
|
BSR
|
CX,[Depo02]
|
7,104-3*n |
7 |
 | La tabella evidenzia che i tempi d'esecuzione
dipendono ovviamente dal numero n di scansioni realmente
eseguite, secondo la formula indicata (con n
da 0 a 31); con 80486
va da un minimo di 6 o 7 cicli (se nessun bit è a 1) ad un massimo di 103 o
104 cicli. |
 | Inoltre mostra che è ammessa una
sola possibile tipologia di operandi
 | tra registro e registro o registro e
memoria |
|
 | 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
0112 |
|
0F
BD DA
0F BD 0D 00000100
0F BD C1
0F BD 05 00000100 |
|
0F
BD DA
0F BD 0D 00
01 00 00
0F BD C1
0F BD 05 00
01 00 00
|
|
|
BSR BX,DX
BSR CX,[Depo02]
BSR AX,CX
BSR AX,[Depo02] |
|
 | Questa istruzione ha 3 codici
operativi,
0FH e BDH,
seguito da quello che tiene conto degli operandi coinvolti. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|