Set di istruzioni della CPU
(Protected Mode)
A B C D
E F G H
I J K L
M N O P
Q R S T
U V W X
Y Z
Note:
Questo documento rappresenta un manuale di riferimento rapido al set di istruzioni
della CPU; per ogni istruzione viene fornito:
- l'opcode principale
- i cicli di clock per le CPU Intel Pentium
- lo stato dei flags dopo l'esecuzione dell'istruzione
Per i flags si utilizzano le seguenti abbreviazioni:
- ID = Identification flag
- VIP = Virtual Interrupt Pending
- VIF = Virtual Interrupt Flag
- AC = Alignment check
- V8 = Virtual 86 mode
- RF = Resume Flag
- NT = Nested Task Flag
- PL = Priviledged Level Flag (2 bits)
- OF = Overflow Flag
- DF = Direction Flag
- IF = Interrupt Enable Flag
- TF = Trap Flag
- SF = Sign Flag
- ZF = Zero Flag
- AF = Auxiliary Flag
- PF = Parity Flag
- CF = Carry Flag
Lo stato dei flags dopo l'esecuzione di una istruzione, viene descritto con i
seguenti simboli:
- - = Il flag non viene modificato
- ? = Il flag è indefinito
- x = Il flag cambia in base al risultato prodotto dall'istruzione
- 0 = Il flag viene posto a zero
- 1 = Il flag viene posto a uno
Abbreviazioni utilizzate per gli operandi delle istruzioni:
- SRC = operando sorgente (source)
- DEST = operando destinazione (destination)
- r8, r16, r32 = registro a 8 / 16 /
32 bit
- m8, m16, m32, m64 = blocco di memoria da 8 / 16 /
32 / 64 bit
- i8, i16, i32 = valore immediato a 8 / 16 /
32 bit
- o8, o16, o32 = indirizzo di memoria (offset) a 8 / 16 /
32 bit
- p16:p16, p16:p32 = indirizzo di memoria in formato seg:offset
- m16:m16, m16:m32 = indirizzo di memoria in formato seg:offset
- cr, dr, tr = registri speciali (special register) (control register,
debug register, test register) a 32 bit
- sr = registro di segmento (segment register) a 16 bit
- rel8, rel16, rel32 = valore relativo a 8 / 16 / 32 bit
Nel calcolo dei cicli di clock necessari alla CPU (in modalità protetta) per
l'esecuzione di ogni istruzione, si considerano valide le seguenti condizioni:
- l'istruzione è già stata precaricata e decodificata ed è quindi pronta
per l'esecuzione
- non sono necessari stati di attesa (wait states) della CPU
- gli eventuali operandi che si trovano in memoria, sono correttamente
allineati
Le CPU prese in considerazione sono quelle ritenute standard di riferimento:
- 80286 a 10 MHz
- 80386 DX a 20 MHz
- 80486 DX a 33 MHz
Per conoscere i cicli di clock relativi alle CPU di classe superiore
(80586, 80686, etc), si faccia riferimento ai relativi manuali tecnici
forniti dai produttori.
A
ARPL
Adjust Requested Privilege Level - Regola il campo RPL ( Livello di privilegio richiesto ) del selettore.
Torna all'indice
C
CLTS
Clear Task-Switched Flag - Cancella il flag task-switched nella MSW del Control Register CR0.
Torna all'indice
L
LAR
Load Access Rights - Carica il byte dei diritti di accesso dal descrittore di segmento specificato.
Torna all'indice
LGDT / LIDT / LLDT
Load Descriptor Table - Carica GDTR / IDTR / LDTR ( registri delle tabelle descrittori globale / interrupt / locale ) dalla memoria o dai registri generali.
Torna all'indice
LMSW
Load Machine Status Word - Carica MSW (Machine Status Word) dal registro o dalla memoria a 16 bit.
Torna all'indice
LSL
Load Segment Limit - Carica il limite del segmento dal descrittore del segmento specificato.
Torna all'indice
LTR
Load Task Register - Carica TR (Task Register) dal registro o dalla memoria a 16 bit.
Torna all'indice
M
MOV CR
Move to/from Special Registers - muove dai registri generali verso i control register e vice versa.
Torna all'indice
MOV DR
Move to/from Special Registers - muove dai registri generali verso i debug register e vice versa.
Torna all'indice
MOV TR
Move to/from Special Registers - muove dai registri generali verso i test register e vice versa.
Torna all'indice
S
SGDT / SIDT / SLDT
Store Descriptor Table - Salva GDTR / IDTR / LDTR ( registri delle tabelle descrittori globale / interrupt / locale ) nella memoria o nei registri generali.
Torna all'indice
SMSW
Store Machine Status Word - Salva MSW (Machine Status Word) nel registro o nella memoria a 16 bit.
Torna all'indice
STR
Store Task Register - Salva TR (Task Register) nel registro o nella memoria a 16 bit.
Torna all'indice
V
VERR / VERW
Verify Read or Write - Verifica se un segmento è pronto per la lettura / scrittura.
Torna all'indice