|
Tutorial
|
Dettaglio Istruzioni |
|
|
 |
Istruzioni
della Cpu 80x86 |
SCHEDA n° 07 [I/
008
di 198] |
 |
|
ARPL - Aggiusta
il campo RPL di un Selettore (Modo Protetto) |
|
 | Questa istruzione non
appartiene al Set dell'8088/86. |
 | Si usa solo in modo protetto
(80286/486)
ed è destinata
al progetto dei Sistemi Operativi, piuttosto che ai
Programmi Applicativi. |
 | Ha 2 operandi, entrambi a 16 bit (word)
contenenti in
ogni caso il valore di un Selettore. |
 | I bit1, bit0
di entrambi gli operandi rappresentano il livello di privilegi
richiesto (RPL, Requested
Privilege Level) dal programma associato al Selettore
che li contiene. |
 | Il compito dell'istruzione è quello di confrontare
questi 2 bit per stabilire se il privilegio
della destinazione è minore di quello
del sorgente, provvedendo a renderlo uguale (cioè ad aggiustarlo)
se
non è così. |
 | Le sue caratteristiche sono riassunte nella
seguente tabella (leggi le istruzioni
): |
ARPL
Destinazione, Sorgente
ARPL Selettore, Registro |
Selettore
Procedura <<
<<
Selettore Procedura ARPL Selettore Chiamante |
| |
|
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 |
ARPL
|
DX,BX
|
no |
10 |
20 |
9 |
no |
2 |
|
|
|
|
|
# |
|
|
|
ARPL
|
[Depo02],CX
|
no |
11 |
21 |
9 |
no |
2,5 |
 | La tabella evidenzia una sola possibile tipologia
tra i gli operandi di questa istruzioni:
 | tra registro e registro o tra memoria e
registro. |
|
 | Dunque se il valore dei
2 bit RPL della destinazione
(sottoprogramma), rispetto a quello degli
stessi bit della sorgente (programma
chiamante), è:
 | minore:
il Selettore del
sottoprogramma rimane inalterato
e la flag di zero viene posta a zero. |
 | maggiore:
il Selettore del
sottoprogramma viene
aumentato e reso uguale a quello del programma chiamante
e la flag di zero viene posta a uno. |
|
 | In questo modo si evita il rischio di affidare
al programma chiamato (destinazione) di avere più privilegi del
programma
chiamante (sorgente). |
 | 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
.386p: |
|
Addr |
|
Codifica
Masm |
|
Sequenza
Bytes |
|
Istruzione |
|
|
|
|
|
|
|
|
.386 |
|
0100 |
|
55AA |
|
AA 55 |
|
Depo02 |
DW 55AAH |
| ---- |
|
---------------- |
|
----------------- |
|
------- |
---------------------- |
0102
0104
0106
0108
010E |
|
63 DA
63 C8
63 FE
63 0D 00000100
63 1D 00000100 |
|
63 DA
63 C8
63 FE
63 0D 00
01 00 00
63 1D 00 01
00 00 |
|
|
ARPL DX,BX
ARPL AX,CX
ARPL SI,DI
ARPL [Depo02],CX
ARPL [Depo02],BX |
|
 | Questa istruzione ha 2 codici operativi,
63H,
seguito da quello che tiene conto degli operandi coinvolti. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|