Set di istruzioni della CPU

(Real 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: Per i flags si utilizzano le seguenti abbreviazioni: Lo stato dei flags dopo l'esecuzione di una istruzione, viene descritto con i seguenti simboli: Abbreviazioni utilizzate per gli operandi delle istruzioni: Nel calcolo dei cicli di clock necessari alla CPU (in modalità reale) per l'esecuzione di ogni istruzione, si considerano valide le seguenti condizioni: Le CPU prese in considerazione sono quelle ritenute standard di riferimento: 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


AAA
ASCII Adjust AL After Addition - Aggiustamento del contenuto di AL dopo una addizione tra due cifre Unpacked BCD. Torna all'indice
AAD
ASCII Adjust AX Before Division - Aggiustamento del contenuto di AX prima di una divisione tra numeri Unpacked BCD. Torna all'indice
AAM
ASCII Adjust AX After Multiply - Aggiustamento del contenuto di AX dopo una moltiplicazione tra due cifre Unpacked BCD. Torna all'indice
AAS
ASCII Adjust AL After Subtraction - Aggiustamento del contenuto di AL dopo una sottrazione tra due cifre Unpacked BCD. Torna all'indice
ADC
Add with Carry - Esegue la somma DEST = DEST + SRC + CF. Torna all'indice
ADD
Addition - Somma SRC con DEST e mette il risultato in DEST. Torna all'indice
AND
Logical AND - Esegue un AND logico tra SRC e DEST. Torna all'indice

B


BOUND
Check Array Index Against Bounds - Verifica dei limiti dell'indice di un vettore. Torna all'indice
BSF
Bit Scan Forward - Scansione in avanti di SRC alla ricerca del primo bit a livello logico 1. Torna all'indice
BSR
Bit Scan Reverse - Scansione all'indietro di SRC alla ricerca del primo bit a livello logico 1. Torna all'indice
BSWAP
Byte Swap - Inversione dell'ordine dei byte in una DWORD. Torna all'indice
BT
Bit Test - Test di un bit. Torna all'indice
BTC
Bit Test and Complement - Test e inversione di un bit. Torna all'indice
BTR
Bit Test and Reset - Test e azzeramento di un bit. Torna all'indice
BTS
Bit Test and Set - Test e attivazione di un bit. Torna all'indice

C


CALL
Call Procedure - Chiamata di un sottoprogramma. Torna all'indice
CBW
Convert Byte to Word - Converte un BYTE in una WORD attraverso l'estensione del bit di segno. Torna all'indice
CDQ
Convert Doubleword to Quadword - Converte una DWORD in una QWORD attraverso l'estensione del bit di segno. Torna all'indice
CLC
Clear Carry Flag - Pone CF = 0. Torna all'indice
CLD
Clear Direction Flag - Pone DF = 0. Torna all'indice
CLI
Clear Interrupt Flag - Pone IF = 0. Torna all'indice
CMC
Complement Carry Flag - Inverte il contenuto di CF. Torna all'indice
CMP
Compare Two Operands - Comparazione tra due operandi. Torna all'indice
CMPS, CMPSB, CMPSW, CMPSD
Compare String Operands - Comparazione tra due stringhe. Torna all'indice
CMPXCHG
Compare and Exchange - Compara e scambia. Torna all'indice
CMPXCHG8B
Compare and Exchange 8 Bytes - Compara e scambia due operandi a 64 bit. r64 si riferisce ad un registro della FPU

Torna all'indice
CPUID
CPU Identification - Identificazione del modello di CPU installato nel computer. Torna all'indice
CWD, CWDE
Convert Word to Doubleword - Converte una WORD in una DWORD attraverso l'estensione del bit di segno. Torna all'indice

D


DAA
Decimal Adjust AL after Addition - Aggiustamento del contenuto di AL dopo una addizione tra due numeri Packed BCD a 8 bit. Torna all'indice
DAS
Decimal Adjust AL after Subtraction - Aggiustamento del contenuto di AL dopo una sottrazione tra due numeri Packed BCD a 8 bit. Torna all'indice
DEC
Decrement by 1 - Esegue la sottrazione DEST = DEST - 1. Torna all'indice
DIV
Unsigned Divide - Divisione di AL/AX/EAX per un numero intero senza segno. Torna all'indice

E


ENTER
Make Stack Frame for Procedure Parameters - Predispone SP/ESP e BP/EBP per la gestione dei parametri e delle variabili locali delle procedure. Torna all'indice

I


IDIV
Signed Divide - Divisione tra numeri interi con segno. Torna all'indice
IMUL
Signed Multiply - Moltiplicazione tra numeri interi con segno. Torna all'indice
IN
Input from Port - Lettura di 8/16/32 bit di dati da una porta hardware. Torna all'indice
INC
Increment by 1 - Esegue la somma DEST = DEST + 1. Torna all'indice
INS, INSB, INSW, INSD
Input from Port to String - Trasferimento dati da una porta hardware ad una stringa. Torna all'indice
INT, INTO
Call to Interrupt Procedure - Chiamata di un gestore di interruzione. Torna all'indice
IRET
Interrupt Return - Ritorno da un gestore di interruzione. Torna all'indice

J


Jcond
Jump if Condition Is Met - Salta se la condizione cond è verificata. Torna all'indice
JMP
Jump - Salto incondizionato. Torna all'indice

L


LAHF
Load Status Flags into AH Register - Trasferisce in AH gli 8 bit meno significativi del registro FLAGS/EFLAGS. Torna all'indice
LDS, LES, LFS, LGS, LSS
Load Far Pointer - Trasferisce un indirizzo logico Seg:Offset nella coppia sreg:reg specificata dal mnemonico dell'istruzione stessa e dall'operando DEST. Torna all'indice
LEA
Load Effective Address - Trasferisce nel registro DEST, l'effective address specificato dall'operando SRC. Torna all'indice
LEAVE
High Level Procedure Exit - Ripristina SP/ESP e BP/EBP alla fine di una procedura dotata di parametri e variabili locali. Torna all'indice
LOCK
Assert LOCK# Signal Prefix - Attivazione del segnale di LOCK. Torna all'indice
LODS, LODSB, LODSW, LODSD
Load String - Lettura di un BYTE/WORD/DWORD da una stringa. Torna all'indice
LOOP, LOOPZ/LOOPE, LOOPNZ/LOOPNE
Loop According to CX/ECX Counter - Controllo di un loop attraverso il registro contatore CX/ECX. Torna all'indice

M


MOV
Move - Copia bit per bit da SRC a DEST. Torna all'indice
MOVS, MOVSB, MOVSW, MOVSD
Move Data from String to String - Copia di un BYTE/WORD/DWORD da stringa a stringa. Torna all'indice
MOVSX
Move with Sign-Extension - Copia bit per bit da SRC a DEST, con estensione del bit di segno di DEST. Torna all'indice
MOVZX
Move with Zero-Extend - Copia bit per bit da SRC a DEST, con aggiunta di zeri alla sinistra di DEST. Torna all'indice
MUL
Unsigned Multiply - Moltiplicazione di un numero intero senza segno, per AL/AX/EAX. Torna all'indice

N


NEG
Two's Complement Negation - Calcola il complemento a 2 di DEST (cambiamento di segno). Torna all'indice
NOP
No Operation - Nessuna operazione. Torna all'indice
NOT
One's Complement Negation - Inverte tutti i bit di DEST (complemento a 1). Torna all'indice

O


OR
Logical Inclusive OR - Esegue un OR logico inclusivo tra SRC e DEST. Torna all'indice
OUT
Output to Port - Scrittura di 8/16/32 bit di dati in una porta hardware. Torna all'indice
OUTS, OUTSB, OUTSW, OUTSD
Output String to Port - Trasferimento dati da una stringa ad una porta hardware. Torna all'indice

P


POP
Pop a value from the stack - Estrazione di un valore dalla cima dello stack. Torna all'indice
POPA, POPAD
Pop All General-Purpose Registers - Estrazione dalla cima dello stack, di valori da copiare in tutti i registri generali. Torna all'indice
POPF, POPFD
Pop Stack into FLAGS/EFLAGS Register - Estrazione dalla cima dello stack, di una WORD/DWORD da trasferire nel registro FLAGS/EFLAGS. Torna all'indice
PUSH
Push Word or Doubleword onto the stack - Inserimento di un operando sulla cima dello stack. Torna all'indice
PUSHA, PUSHAD
Push All General-Purpose Registers - Inserimento sulla cima dello stack, del contenuto di tutti i registri generali. Torna all'indice
PUSHF, PUSHFD
Push FLAGS/EFLAGS Register onto the Stack - Inserimento sulla cima dello stack, del contenuto del registro FLAGS/EFLAGS. Torna all'indice

R


RCL
Rotate through Carry Left - Rotazione dei bit di DEST verso sinistra, attraverso CF. (*) CPU 8086 - aggiungere 4 cicli di clock per ogni rotazione da 1 bit
(*) CPU 80286 - aggiungere 1 ciclo di clock per ogni rotazione da 1 bit

Torna all'indice
RCR
Rotate through Carry Right - Rotazione dei bit di DEST verso destra, attraverso CF. (*) CPU 8086 - aggiungere 4 cicli di clock per ogni rotazione da 1 bit
(*) CPU 80286 - aggiungere 1 ciclo di clock per ogni rotazione da 1 bit

Torna all'indice
REP, REPE/REPZ, REPNE/REPNZ
Repeat String Operation Prefix - Prefisso per l'iterazione di un'istruzione per le stringhe. N = numero di iterazioni.

Torna all'indice
RET
Return from Procedure - Ritorno da un sottoprogramma. Torna all'indice
ROL
Rotate Left - Rotazione dei bit di DEST verso sinistra. (*) CPU 8086 - aggiungere 4 cicli di clock per ogni rotazione da 1 bit
(*) CPU 80286 - aggiungere 1 ciclo di clock per ogni rotazione da 1 bit

Torna all'indice
ROR
Rotate Right - Rotazione dei bit di DEST verso destra. (*) CPU 8086 - aggiungere 4 cicli di clock per ogni rotazione da 1 bit
(*) CPU 80286 - aggiungere 1 ciclo di clock per ogni rotazione da 1 bit

Torna all'indice

S


SAHF
Store AH into Flags - Trasferisce il contenuto di AH negli 8 bit meno significativi del registro FLAGS/EFLAGS. Torna all'indice
SAL
Shift Arithmetic Left - Scorrimento aritmetico dei bit di DEST verso sinistra. (*) CPU 8086 - aggiungere 4 cicli di clock per ogni scorrimento da 1 bit
(*) CPU 80286 - aggiungere 1 ciclo di clock per ogni scorrimento da 1 bit

Torna all'indice
SAR
Shift Arithmetic Right - Scorrimento aritmetico dei bit di DEST verso destra. (*) CPU 8086 - aggiungere 4 cicli di clock per ogni scorrimento da 1 bit
(*) CPU 80286 - aggiungere 1 ciclo di clock per ogni scorrimento da 1 bit

Torna all'indice
SBB
Integer Subtraction with Borrow - Esegue la sottrazione DEST = DEST - (SRC + CF). Torna all'indice
SCAS, SCASB, SCASW, SCASD
Scan String - Scansione di una stringa. Torna all'indice
SETcond
Set Byte on Condition - Abilita un byte se la condizione cond è verificata. Torna all'indice
SHL
Shift Logical Left - Scorrimento logico dei bit di DEST verso sinistra. (*) CPU 8086 - aggiungere 4 cicli di clock per ogni scorrimento da 1 bit
(*) CPU 80286 - aggiungere 1 ciclo di clock per ogni scorrimento da 1 bit

Torna all'indice
SHLD
Double Precision Shift Logical Left - Scorrimento logico dei bit di DEST verso sinistra, in doppia precisione. Torna all'indice
SHR
Shift Logical Right - Scorrimento logico dei bit di DEST verso destra. (*) CPU 8086 - aggiungere 4 cicli di clock per ogni scorrimento da 1 bit
(*) CPU 80286 - aggiungere 1 ciclo di clock per ogni scorrimento da 1 bit

Torna all'indice
SHRD
Double Precision Shift Logical Right - Scorrimento logico dei bit di DEST verso destra, in doppia precisione. Torna all'indice
STC
Set Carry Flag - Pone CF = 1. Torna all'indice
STD
Set Direction Flag - Pone DF = 1. Torna all'indice
STI
Set Interrupt Flag - Pone IF = 1. Torna all'indice
STOS, STOSB, STOSW, STOSD
Store String - Scrittura di un BYTE/WORD/DWORD in una stringa. Torna all'indice
SUB
Subtract - Esegue la sottrazione DEST = DEST - SRC. Torna all'indice

T


TEST
Logical Compare - Esegue una comparazione logica (AND) tra SRC e DEST. Torna all'indice

W


WAIT
WAIT until the BUSY# pin is high - Attende finchè il coprocessore matematico è occupato. n = numero cicli di attesa della CPU.

Torna all'indice

X


XADD
Exchange and Add - Scambia e somma due operandi. Torna all'indice
XCHG
Exchange Register/Memory with Register - Scambia il contenuto di SRC e DEST. Torna all'indice
XLAT, XLATB
Table Look-up Translation - Conversione attraverso una tabella di look-up. Torna all'indice
XOR
Logical Exclusive OR - Esegue un OR logico esclusivo tra SRC e DEST. Torna all'indice