Sunteți pe pagina 1din 21

Arhitectura Microprocesoarelor

x86 Setul de instruciuni

ANEX
SETUL DE INSTRUCIUNI
Procesoare compatibile Intel x86 variantele pe 16 bii
Convenii:
s:
d:
AL|AX:
mem:

mem16:

mem32:

r | ri | rj:
r8:
r16:
rs:
data:
data8:
data16:
disp8:
disp16:
adr:
adr8:
adr32:
port:
tip:
nrcel:
AE:

surs;
destinaie;
acumulatorul implicit de 8 sau de 16 bii;
coninutul unei locaii de memorie sau coninutul a dou locaii de
memorie succesive, adresate cu unul dintre modurile de adresare permise
pentru memoria de date, cu excepia adresrii imediate;
coninutul a dou locaii de memorie succesive adresate cu unul dintre
modurile de adresare permise pentru memoria de date, cu excepia
adresrii imediate;
coninutul a patru locaii de memorie succesive adresate cu unul dintre
modurile de adresare permise pentru memoria de date, cu excepia
adresrii imediate;
un registru oarecare de 8 sau de 16 bii, exceptnd registrele segment;
un registru de 8 bii;
un registru de 16 bii, exceptnd registrele segment;
un registru segment (CS, SS, DS, ES);
un operand de 8 sau 16 bii care face parte din formatul instruciunii
(adresare imediat);
un operand de 8 bii care face parte din formatul instruciunii (adresare
imediat);
un operand de 16 bii care face parte din formatul instruciunii (adresare
imediat);
deplasament pe 8 bii (face parte din formatul instruciunii);
deplasament pe 16 bii (face parte din formatul instruciunii);
o adres complet (pe 16 bii);
o adres scurt (pe 8 bii);
o adres logic exprimat pe patru octei succesivi;
adresa (numrul de ordine) unui port de intrare/ieire, de regul pe 8 bii;
un operand de 8 bii care indic tipul unei ntreruperi i face parte din
formatul instruciunii (adresare imediat);
numrul de celule cu care se poate face deplasarea sau rotaia unui
operand;
adresa efectiv.

Arhitectura Microprocesoarelor

x86 Setul de instruciuni

Pentru fanioane:
x:
1:
0:
?:
blanc:

fanionul se schimb n conformitate cu rezultatul operaiunii;


fanionul este setat necondiionat;
fanionul este resetat necondiionat;
fanionul este afectat impredictibil;
fanionul nu este afectat.

Pentru calculul numrului de stri :


cAE - timpul de calcul al adresei efective, i anume
- adresare direct:

AE=disp8|disp16

6 stri;

- adresare indexat:

AE=(SI)|(DI)+ disp8|disp16

9 stri;

- adresare indirect implicit: AE=(SI)|(DI)

5 stri;

- adresare relativ la baz direct, fr deplasament:


AE=(BX)

5 stri;

- adresare relativ la baz direct, cu deplasament:


AE=(BX)+disp8|disp16

9 stri;

- adresare relativ la baz indexat:


AE=(BX)+(SI)|(DI)+disp8|disp16

12 stri;

- adresare relativ la baz implicit: AE=(BX)+(SI)|(DI)

8 stri;

- adresare n stiv direct, fr deplasament: AE=(BP)

5 stri;

- adresare n stiv direct, cu deplasament:


AE=(BP)+disp8|disp16

9 stri;

- adresare n stiv indexat:


AE=(BP)+(SI)|(DI)+disp8|disp16

12 stri;

- adresare n stiv implicit: AE=(BP)+(SI)|(DI)

8 stri;

- pentru redirecionarea segmentului se mai adaug

2 stri.

Arhitectura Microprocesoarelor

Ajustare ASCII
pentru adunare

AAA

Operanzi

Nr. de stri
4

OF
?

Operanzi

Nr. de stri
60

Operanzi

Nr. de stri
83

Operanzi

Nr. de stri
4

d,s

Operanzi
AL|AX, data
r, data
mem, data
r1, r2
r, mem
mem, r

OF
?

4
4
17+cAE
3
9+cAE
16+cAE

DF

IF

TF

Octei

SF
?

ZF
?

AF
x

PF
?

CF
x

SF
x

ZF
x

AF
?

PF
x

CF
?

AF
?

PF
x

CF
?

AF
x

PF
?

CF
x

AF
x

PF
x

CF
x

Exemple

AAD

OF
?

DF

IF

TF

Octei

SF
x

ZF
x

Exemple

AAM

OF
?

DF

IF

TF

Octei

SF
?

ZF
?

Exemple

AAS

Adunare cu
transport

Nr. de stri

TF

Exemple

Ajustare ASCII
pentru scdere

AAS

IF

AAA

Ajustare ASCII
pentru nmulire
(se face dup nmulire)

AAM

DF

Octei
1

Ajustare ASCII
pentru mprire
(se face nainte de
mprire)

AAD

ADC

x86 Setul de instruciuni

OF
x

DF

Octei

IF

TF

SF
x

ZF
x

Exemple

2-3
3-4
3-6
2
2-4
2-4

ADC
ADC
ADC
ADC
ADC
ADC

AX,9D81H
CL,36H
[SI],2D31H
BX,SI
AX,[BX]
[BX+SI+64H],DI

Arhitectura Microprocesoarelor

ADD

d,s

Operanzi
AL|AX, data
r, data
mem, data
r1, r2
r, mem
mem, r

AND

d,s

Operanzi
AL|AX, data
r, data
mem, data
r1, r2
r, mem
mem, r

CALL

adr

Operanzi

x86 Setul de instruciuni


OF
x

Adunare

Nr. de stri
4
4
17+cAE
3
9+cAE
16+cAE

4
4
17+cAE
3
9+cAE
16+cAE

TF

SF
x

ZF
x

AF
x

PF
x

CF
x

AF
?

PF
x

CF
0

AF

PF

CF

Exemple
ADD
ADD
ADD
ADD
ADD
ADD

OF
0

DF

AX,0F0FH
DX,0F0F0H
[100H],2H
SI,CX
DI,[BX+22H]
[BX+SI],CL

IF

TF

Octei

SF
x

ZF
x

Exemple

2-3
3-4
3-6
2
2-4
2-4

AND
AND
AND
AND
AND
AND

Apelarea unui
subprogram

Nr. de stri

IF

Octei
2-3
3-4
3-6
2
2-4
2-4

I logic

Nr. de stri

DF

OF

DF

AL,7FH
CX,0F0H
[BX],01010000B
AL,BL
DL,[BX+SI]
[DI+10H],AL

IF

TF

Octei

SF

ZF

Exemple

adr32
28
5
CALL PROC-ALT-SEG
disp16
28
3
CALL SUMA
r16
16
2
CALL BX
mem*
21+cAE
2-4
CALL [BX]
mem**
37+cAE
2-4
CALL [SI]
* apelare de subprogram cu adresare indirect definit cu directiva de asamblare ca apelare intra-segment;
** apelare de subprogram cu adresare indirect definit cu directiva de asamblare ca apelare inter-segment.

Extindere (cu semn)


a unui octet la un
cuvnt

CBW

Operanzi

Nr. de stri
2

OF

DF

Octei

IF

TF

SF

ZF

Exemple

CBW

AF

PF

CF

Arhitectura Microprocesoarelor
Resetarea
fanionului de
transport

CLC

Operanzi

Nr. de stri
2

OF

Operanzi

Nr. de stri
2

Operanzi

Nr. de stri
2

Operanzi

Nr. de stri
2

s1,s2

Operanzi

OF

AL|AX, data
r, data
mem, data
r1, r2
r, mem
mem, r

SF

ZF

AF

PF

CF
0

IF

TF

SF

ZF

AF

PF

CF

AF

PF

CF

AF

PF

CF
x

Exemple

CLD

OF

DF

IF
0

TF

Octei

SF

ZF

Exemple

CLI

OF

DF

IF

TF

Octei

SF

ZF

Exemple

CMC

OF

operanzi

4
4
17+cAE
3
9+cAE
16+cAE

DF
0

Octei

Compararea a doi

Nr. de stri

TF

Exemple

Complementarea
fanionului de
transport

CMC

IF

CLC

Resetarea fanionului
de validare a ntreruperilor

CLI

DF

Octei
1

Resetarea
fanionului de
direcie

CLD

CMP

x86 Setul de instruciuni

DF

Octei

IF

TF

SF

ZF

AF

PF

CF

Exemple

2-3
3-4
3-6
2
2-4
2-4

CMP
CMP
CMP
CMP
CMP
CMP

AL,0DH
SI,200H
[BX+DI+55H],2222H
CL,DH
DH,[4321H]
[BP+2],SI

Arhitectura Microprocesoarelor

x86 Setul de instruciuni

Compararea
componentelor din
dou iruri

CMPS

Operanzi

OF
x

Nr. de stri

DF

IF

TF

Octei

SF
x

ZF
x

AF
x

PF
x

CF
x

Exemple

22
1
CMPSB ; pe octei
22
1
CMPSW ; pe cuvinte
Obs.: Primitiva CMPS poate fi nsoit de unul dintre prefixele de repetabilitate REP, REPE|REPZ sau
REPNE|REPNZ; acestea adaug 9 stri.

Extindere (cu semn)


a unui cuvnt la un
cuvnt dublu

CWD

Operanzi

Nr. de stri
5

Operanzi

Operanzi

Operanzi
r16
r8
mem

2
3
15+cAE

SF

ZF

AF

PF

CF

IF

TF

SF
x

ZF
x

AF
x

PF
x

CF
x

AF
x

PF
x

CF
x

AF
x

PF
x

CF

Exemple
DAA

OF
?

DF

IF

TF

Octei

SF
x

ZF
x

Exemple

DAS

OF
x

Decrementarea sursei

Nr. de stri

DF

Octei
1

Nr. de stri
4

TF

Exemple

Ajustare zecimal
pentru scdere

DAS

IF

CWD

OF
?

Nr. de stri
4

DF

Octei
1

Ajustare zecimal
pentru adunare

DAA

DEC

OF

DF

Octei

IF

TF

SF
x

ZF
x

Exemple

1
2
2-4

DEC
DEC
DEC

CX
BH
[SI+20H]

Arhitectura Microprocesoarelor

DIV

Operanzi
r8
r16
mem8

ESC

Operanzi
mem

OF
?

mprire

Nr. de stri
8090
144162
8696+
cAE
150168+
cAE

mem16

x86 Setul de instruciuni

7 + cAE

Operanzi

Nr. de stri
2

IDIV

Operanzi
r8
r16
mem8
mem16

101112
165184
107118+
cAE
171190+
cAE

SF
?

ZF
?

AF
?

PF
?

CF
?

AF

PF

CF

AF

PF

CF

AF
?

PF
?

CF
?

Exemple
DIV
DIV
DIV

BL
CX
[400H]

2-4

DIV

[SI+10H]

OF

DF

IF

TF

Octei

SF

ZF

Exemple

2-4

ESC

OF

DF

[BX+SI]

IF

TF

Octei

SF

ZF

Exemple

HLT

OF
?

mprire cu semn

Nr. de stri

TF

Octei

Introduce procesorul
n starea de halt

HLT

IF

2
2
2-4

Plaseaz coninutul
unei locaii de memorie
pe magistrala de date

Nr. de stri

DF

DF

Octei

IF

TF

SF
?

ZF
?

Exemple

2
2
2-4

IDIV
IDIV
IDIV

CL
BX
[SI+100H]

2-4

IDIV

[BX+1000H]

Arhitectura Microprocesoarelor

IMUL

Operanzi
r8
r16
mem8
mem16

IN

d,s

Operanzi
AL|AX, port
AL|AX, DX

INC

Operanzi
r16
r8
mem

INT

Operanzi
tip (tip<>3)

OF
x

nmulire cu semn

Nr. de stri
8098
128154
86104+
cAE
134160+
cAE

Operanzi

IMUL

[BP+DI+30H]

OF

AF
?

PF
?

CF
x

IF

TF

SF

ZF

AF

PF

CF

AF
x

PF
x

CF

AF

PF

CF

AF

PF

CF

Exemple
IN
IN

OF
x

AL,1FH
AX,DX

DF

IF

TF

Octei

SF
x

ZF
x

Exemple

1
2
2-4

INC
INC
INC

Cerere de ntrerupere
software

53 sau 4

DF

Octei
2
1

Nr. de stri

ZF
?

Exemple

2-4

Nr. de stri

Nr. de stri

SF
?

CL
BX
[BX]

OF

DF

SI
BL
[BX+SI]

IF
0

TF
0

Octei

SF

ZF

Exemple
INT ; ntrerupere tip 3
INT
67

1
2

Cerere de ntrerupere
de tip 4 (dac exist
depire)

INTO

TF

IMUL
IMUL
IMUL

Incrementarea sursei

52
51

IF

Octei

Nr. de stri
10
8

DF

2
2
2-4

Transferul unui
octet sau cuvnt de
la un port n acumulator

2
3
15+cAE

[tip]

x86 Setul de instruciuni

OF

DF

Octei

IF
0

TF
0

SF

ZF

Exemple

INTO

Arhitectura Microprocesoarelor

x86 Setul de instruciuni

ntoarcere din rutina


de deservire a unei
ntreruperi

IRET

Operanzi

Nr. de stri
24

JA | JNBE
disp8

Operanzi
disp8

JAE|JNB|JNC
disp8

Operanzi
disp8

JB|JNAE|JC
disp8

Operanzi
disp8

JBE | JNA
disp8

Operanzi
disp8

OF
x

16 sau 4

16 sau 4

16 sau 4

OF

16 sau 4

DF

IF

TF

Octei

ZF
x

AF
x

PF
x

CF
x

SF

ZF

AF

PF

CF

Exemple

JA

OF

ET1

DF

IF

;salt dac (CF)=0 sau (ZF)=0

TF

Octei

SF

ZF

AF

PF

CF

PF

CF

PF

CF

Exemple

JAE

OF

DF

ET2

IF

;salt dac (CF)=0

TF

Octei

SF

ZF

AF

Exemple

JB

Salt dac sub sau egal |


dac nu peste
(pentru operaii fr semn)

Nr. de stri

SF
x

Exemple

Salt dac sub |


dac nu peste sau egal |
dac exist transport
(pentru operaii fr semn)

Nr. de stri

TF
x

IRET

Salt dac peste sau egal |


Dac nu sub |
dac nu transport (pentru
operaii fr semn)

Nr. de stri

IF
x

Octei
1

Salt dac peste |


dac nu sub sau egal
(pentru operaii fr semn)

Nr. de stri

DF
x

OF

ET3

DF

IF

Octei

;salt dac (CF)=1

TF

SF

ZF

AF

Exemple

JNA

ET4

;salt dac (CF)=1 sau (ZF)=1

Arhitectura Microprocesoarelor

x86 Setul de instruciuni


OF

JCXZ disp8

Operanzi
disp8

JE | JZ
disp8

Operanzi
disp8

JG | JNLE
disp8

Operanzi
disp8

JGE | JNL
disp8

Operanzi
disp8

JL | JNGE
disp8

Operanzi
disp8

DF

IF

TF

SF

ZF

AF

PF

CF

AF

PF

CF

PF

CF

Salt dac (CX) = 0

Nr. de stri
16 sau 4

Octei

Salt dac egal |


dac " zero" (pentru operaii
cu semn)

Nr. de stri
16 sau 4

16 sau 4

16 sau 4

16 sau 4

DF

GATA

IF

TF

SF

ZF

Exemple
JZ

OF

ET5

DF

IF

;salt dac (ZF)=1

TF

Octei

SF

ZF

AF

Exemple

JG

OF

ET6

DF

IF

;salt dac
;(SF)(OF)=0 sau (ZF)=0

TF

Octei

SF

ZF

AF

PF

CF

AF

PF

CF

Exemple

Salt dac mai mic | dac


nu mai mare sau egal
(pentru operaii cu semn)

Nr. de stri

OF

Salt dac mai mare sau


egal | dac nu mai mic
(pentru operaii cu semn)

Nr. de stri

JCXZ

Octei

Salt dac mai mare |


dac nu mai mic sau egal
(pentru operaii cu semn)

Nr. de stri

Exemple

JGE

OF

DF

ET7

IF

Octei

;salt dac
;(SF)(OF)=0

TF

SF

ZF

Exemple

JL

10

ET8

;salt dac
;(SF)(OF)=1

Arhitectura Microprocesoarelor

JLE | JNG
disp8

Operanzi
disp8

x86 Setul de instruciuni

Salt dac mai mic sau


egal | dacnu mai mare
(pentru operaii cu semn)

Nr. de stri
16 sau 4

Operanzi

DF

IF

TF

Octei

SF

ZF

AF

PF

CF

Exemple

JNG

Salt propriu-zis,
JMP adr

OF

OF

ET9

DF

IF

;salt dac
;(SF)(OF)=1 sau (ZF)=1

TF

SF

ZF

AF

PF

CF

PF

CF

PF

CF

necondiionat

Nr. de stri

Octei

Exemple

adr32
15
5
JMP
ET_ALT_SEG
disp16
15
3
JMP
ETICHETA_IN_SEGMENT
disp8
15
2
JMP
ET_SALT_SCURT
r16
11
2
JMP
BX
mem*
18+cAE
2-4
JMP
[BX+100H]
mem**
24+cAE
2-4
JMP
[DI]
* salt cu adresare indirect definit cu directiv de asamblare ca salt intra-segment;
** salt cu adresare indirect definit cu directiv de asamblare ca salt inter-segment.

JNE | JNZ
disp8

Operanzi
disp8

JNO

Salt dac ne-egal


| dac non-zero
(operaii cu semn)

Nr. de stri
16 sau 4

disp8

OF

JNE

Salt dac nu exist


depire"

OF

Nr. de stri

Octei

16 sau 4

Operanzi

Salt dac non-paritate |


dac impar

Nr. de stri
16 sau 4

TF

SF

ZF

AF

Exemple

disp8

disp8

IF

Octei

Operanzi

JNP | JPO
disp8

DF

ET10

DF

IF

;salt dac (ZF)=0

TF

SF

ZF

AF

Exemple
JNO

OF

DF

IF

Octei

ET11

TF

;salt dac (OF)=0

SF

ZF

AF

Exemple

JPO

11

ET12

;salt dac (PF)=0

PF

CF

Arhitectura Microprocesoarelor

x86 Setul de instruciuni


OF

JNS

disp8

Operanzi
disp8

disp8

Operanzi
disp8

JP | JPE
disp8

Operanzi
disp8

Nr. de stri
16 sau 4

disp8

Operanzi

Nr. de stri
16 sau 4

Salt dac exist paritate |


dac par

Nr. de stri
16 sau 4

PF

CF

IF

PF

CF

PF

CF

PF

CF

AF

PF

CF

AF

PF

CF

;salt dac (SF)=0

TF

SF

ZF

AF

OF

ET14

DF

IF

;salt dac (OF)=1

TF

Octei

SF

ZF

AF

Exemple
JPO

DF

ET15

IF

;salt dac (PF)=1

TF

SF

ZF

AF

Salt dac exist semn

Nr. de stri

Nr. de stri
4

Operanzi

AF

Exemple
JO

Octei

ncarc (AH) cu octetul


inferior al registrului F

r16, mem32

DF

ET13

Octei

LAHF

d,s

ZF

Exemple
JNS

16 sau 4

LDS

SF

Salt dac depire

disp8

Operanzi

TF

Octei
2

OF
JS

IF

Salt dac non-semn

OF
JO

DF

16+cAE

JS

OF

ET16

DF

IF

;salt dac (SF)=1

TF

Octei

SF

ZF

Exemple

ncarc un registru de 16
bii
i registrul segment de date

Nr. de stri

Exemple

LAHF

OF

DF

Octei

IF

TF

SF

ZF

Exemple

2-4

LDS

12

SI,[10H]

Arhitectura Microprocesoarelor

LEA

d,s

Operanzi
r16, mem16

LES

d,s

Operanzi
r16, mem32

x86 Setul de instruciuni

ncarc un registru de 16
bii
cu o adres efectiv

Nr. de stri
2+cAE

16+cAE

Operanzi
mem

Nr. de stri
2

Operanzi

Nr. de stri
12
12

OF

Operanzi
disp8

LOOPE|LOOPZ
disp8

Operanzi
disp8

SF

ZF

AF

PF

CF

DF

AF

PF

CF

AF

PF

CF

AF

PF

CF

AF

PF

CF

AF

PF

CF

BX,[BX+SI+0FFFH]

IF

TF

SF

ZF

Exemple
LES

OF

DF

DI,[BX]

IF

TF

Octei

SF

ZF

Exemple

LOCK

OF

DF

XCHG

IF

CL,BL

TF

Octei

SF

ZF

Exemple

1
1

LODSB
LODSW

OF
LOOP disp8

TF

Exemple
LEA

2-4

ncarc componentele
unui ir n acumulator

LODS

IF

Octei

Pe durata instruciunii
pe care o prefixeaz aloc
magistrala calculatorului

LOCK

DF

Octei
2-4

ncarc un registru de 16
bii
i registrul ES

Nr. de stri

OF

DF

; pe octei
; pe cuvinte

IF

TF

SF

ZF

Cicleaz necondiionat

Nr. de stri
9 sau 5

Octei

Cicleaz ct timp
egal sau zero

Nr. de stri
11 sau 5

Exemple

LOOP

OF

DF

Octei

CICLU_1

IF

TF

SF

ZF

Exemple

LOOPE

13

CICLU_2

Arhitectura Microprocesoarelor
LOOPNE |
LOOPNZ
disp8

Operanzi
disp8

x86 Setul de instruciuni

Cicleaz ct timp ne-egal


sau non-zero

Nr. de stri
11 sau 5

OF

d,s

Operanzi

Nr. de stri

SF

ZF

AF

PF

CF

AF

PF

CF

AF

PF

CF

Exemple
LOOPNE

DF

CICLU_3

IF

TF

Octei

SF

ZF

Nr. de stri

Exemple

2-3
3-6
3
3
2
2-4
2-4
2
2-4
2
2-4

Transfer o component
a irului surs
n irul destinaie

Operanzi

TF

Copiaz sursa la destinaie

r, data
4
mem, data
10+cAE
AL|AX, mem
10
mem, AL|AX
10
r1, r2
2
r, mem
8+cAE
mem, r
9+cAE
rs*, r16
2
rs*, mem16
8+cAE
r16, rs
2
mem16, rs
9+cAE
* registrul segment nu poate fi CS

MOVS

IF

Octei
2

OF
MOV

DF

MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV

OF

DF

CX,3168H
[BX],491FH
AL,[1064H]
[1064H],AX
AX,CX
BP,[BX+DELTA]
[DI+100H],CX
SS,DX
DS,[1000H]
BP,SS
[2000H],CS

IF

TF

Octei

SF

ZF

Exemple

18
1
MOVSB
; pe octei
18
1
MOVSW
; pe cuvinte
Obs.: Primitiva MOVS poate fi nsoit de prefixul de repetabilitate REP; acesta adaug 9 stri.

OF
MUL

Operanzi
r8
r16
mem8
mem16

7077
118133
7683+
cAE
124139+
cAE

IF

TF

nmulire

Nr. de stri

DF

Octei

SF

ZF

AF

PF

CF

Exemple

2
2
2-4

MUL
MUL
MUL

BL
CX
[SI+300H]

2-4

MUL

[200H]

14

Arhitectura Microprocesoarelor

NEG

Operanzi
r
mem
* (CF) = 0 dac (s)=0H

NOT

Operanzi
r
mem

x86 Setul de instruciuni

Complementare fa de 2
a sursei

Nr. de stri
3
16+cAE

3
16+cAE

d,s

Operanzi

OF

AL|AX, data
r, data
mem, data
r1, r2
r, mem
mem, r

OUT

d,s

Operanzi
port, AL|AX
DX, AL|AX

POP

Operanzi
r16
mem16
rs (nu CS)

4
4
17+cAE
3
9+cAE
16+cAE

10
8

Nr. de stri
8
17+cAE
8

DF

IF

TF

ZF
x

AF
x

PF
x

CF
1*

SF

ZF

AF

PF

CF

Exemple
NOT
NOT

DF

BL
[1000H]

IF

TF

Octei

SF

ZF

AF

PF

CF

AF

PF

CF

AF

PF

CF

Exemple

2-3
3-4
3-6
2
2-4
2-4

OR
OR
OR
OR
OR
OR

OF

AX,3030H
CX,001FH
[BX+DI],1F1FH
AH,BH
DX,[DI]
[BX],AX

DF

IF

TF

Octei

SF

ZF

Exemple

2
1

Transfer din stiv


la destinaie

SF
x

AL
[BX]

Transferul unui octet


sau cuvnt din acumulator
la un port

Nr. de stri

TF

Octei
2
2-4

SAU logic

Nr. de stri

IF

Exemple
NEG
NEG

OF
OR

DF

Octei
2
2-4

Complementare fa de 1
a sursei

Nr. de stri

OF
x

OUT
OUT

OF

DF

44,AX
DX,AL

IF

Octei

TF

SF

ZF

Exemple

1
2-4
1

POP
POP
POP

15

BX
[SI]
ES

Arhitectura Microprocesoarelor

x86 Setul de instruciuni

Transfer din stiv registrul


de fanioane

POPF

Operanzi

Nr. de stri
8

PUSH

Operanzi
r16
mem16
rs

PUSHF

Operanzi

11
16+cAE
10

10

RCL s, nrcel

Operanzi
r, 1
r, CL
mem, 1
mem, CL

RCR s, nrcel

Operanzi
r, 1
r, CL
mem, 1
mem, CL

2
8+4/bit
15+cAE
20+cAE
+4/bit

2
8+4/bit
15+cAE
20+cAE
+4/bit

SF
x

ZF
x

AF
x

PF
x

CF
x

AF

PF

CF

AF

PF

CF

AF

PF

CF
x

AF

PF

CF
x

Exemple

DF

IF

TF

SF

ZF

Exemple

1
2-4
1

PUSH
PUSH
PUSH

OF

DF

SI
[BX]
DS

IF

TF

Octei

SF

ZF

Exemple

PUSHF

OF
x

DF

IF

TF

Octei

SF

ZF

Exemple

2
2
2-4
2-4

Rotaie dreapta cu transport

Nr. de stri

TF
x

Octei

Rotaie stnga cu transport

Nr. de stri

IF
x

POPF

OF

Transfer n stiv registrul


de fanioane

Nr. de stri

DF
x

Octei
1

Transfer n stiv
de la surs

Nr. de stri

OF
x

RCL
RCL
RCL
RCL

OF
x

DF

Octei

AX,1
BL,CL
ALFA,1
[DI+ALFA],CL

IF

TF

SF

ZF

Exemple

2
2
2-4
2-4

RCR
RCR
RCR
RCR

16

BX,1
CX,CL
[BX+20],1
[SI],CL

Arhitectura Microprocesoarelor

x86 Setul de instruciuni

Repet necondiionat
primitiva de operaie
cu iruri pe care o precede

REP

Operanzi

Nr. de stri
9

REPE | REPZ

Operanzi

REPNE|REPNZ

Operanzi

OF

Operanzi
data16
data16

ROL s, nrcel

Operanzi
r, 1
r, CL
mem, 1
mem, CL

TF

SF

ZF

AF

PF

CF

DF

AF

PF

CF

AF

PF

CF

AF

PF

CF

AF

PF

CF
x

MOVSB

IF

TF

Octei

SF

ZF

Exemple
REPE

OF

DF

CMPSB

IF

TF

Octei

SF

ZF

Exemple

REPNE

OF
RET [data16]

IF

Exemple
REP

Repet ct timp ne-egal |


ct timp non-zero
primitiva CMPS sau SCAS

Nr. de stri

DF

Octei
1

Repet ct timp egal |


ct timp zero
primitiva CMPS sau SCAS

Nr. de stri

OF

DF

SCASW

IF

TF

SF

ZF

Rentoarcere din
subprogram

Nr. de stri
8
12
18
17

Octei

2
8+4/bit
15+cAE
20+cAE
+4/bit

RET
RET
RET
RET

OF
x

Rotaie stnga

Nr. de stri

Exemple

1
3
1
3

DF

Octei

;intra-segment
4 ;intra-segment
;inter-segment
2 ;inter-segment

IF

TF

SF

ZF

Exemple

2
2
2-4
2-4

ROL
ROL
ROL
ROL

17

DI,1
BX,CL
[DI+DELTA],1
[BX+DI],CL

Arhitectura Microprocesoarelor

x86 Setul de instruciuni


OF

ROR s, nrcel

Operanzi
r, 1
r, CL
mem, 1
mem, CL

2
8+4/bit
15+cAE
20+cAE
+4/bit

Operanzi

Nr. de stri
4

SAL | SHL
s,nrcel

Operanzi
r, 1
r, CL
mem, 1
mem, CL

SAR s, nrcel

Operanzi
r, 1
r, CL
mem, 1
mem, CL

2
8+4/bit
15+cAE
20+cAE
+4/bit

2
8+4/bit
15+cAE
20+cAE
+4/bit

ZF

AF

PF

CF
x

ROR
ROR
ROR
ROR

OF

DF

CX,1
BX,CL
[SI],1
BETA,CL

IF

TF

Octei

SF
x

ZF
x

AF
x

PF
x

CF
x

AF
?

PF
x

CF
x

AF
?

PF
x

CF
x

Exemple

SAHF

OF
x

DF

IF

TF

Octei

SF
x

ZF
x

Exemple

2
2
2-4
2-4

Deplasare dreapta aritmetic

Nr. de stri

SF

Exemple

2
2
2-4
2-4

Deplasare stnga logic


sau aritmetic

Nr. de stri

TF

Octei

ncarc octetul inferior


al registrului F cu (AH)

SAHF

IF

Rotaie dreapta

Nr. de stri

DF

SHL
SAL
SHL
SHL

OF
x

DF

AL,1
SI,CL
[DI+100H],1
[BP+SI],CL

IF

TF

Octei

SF
x

ZF
x

Exemple

2
2
2-4
2-4

SAR
SAR
SAR
SAR

18

AH,1
DI,CL
[BP],1
[DI],CL

Arhitectura Microprocesoarelor

x86 Setul de instruciuni


OF

SBB

d,s

Operanzi
AL|AX, data
r, data
mem, data
r1, r2
r, mem
mem, r

4
4
17+cAE
3
9+cAE
16+cAE

Operanzi

Nr. de stri

TF

Octei

SF

ZF

AF

PF

CF

AF
x

PF
x

CF
x

Exemple

2-3
3-4
3-6
2
2-4
2-4

Compar elementele
unui ir cu acumulatorul

SCAS

IF

Scdere cu mprumut

Nr. de stri

DF

SBB
SBB
SBB
SBB
SBB
SBB

OF
x

DF

AX,4D2CH
CL,1
[BP+SI],3F8H
BL,DL
DI,[BX+ALFA]
[SI+100],AX

IF

TF

Octei

SF
x

ZF
x

Exemple

15
1
SCASB
; pe octei
15
1
SCASW
; pe cuvinte
Obs.: Primitiva SCAS poate fi nsoit de unul dintre prefixele de repetabilitate REP, REPE|REPZ sau
REPNE|REPNZ; acestea adaug 9 stri.

SHR s, nrcel

Operanzi
r, 1
r, CL
mem, 1
mem, CL

Deplasare dreapta logic

Nr. de stri
2
8+4/bit
15+cAE
20+cAE
+4/bit

Operanzi

Nr. de stri
2

Operanzi

Nr. de stri
2

IF

TF

SF
x

ZF
x

AF
?

PF
x

CF
x

AF

PF

CF
1

AF

PF

CF

Exemple
SHR
SHR
SHR
SHR

OF

DF

BL,1
SI,CL
[BP+SI],1
[BX+DI+BETA],CL

IF

TF

Octei

SF

ZF

Exemple

Setarea fanionului
de direcie

STD

DF

Octei
2
2
2-4
2-4

Setarea fanionului
de transport

STC

OF
x

STC

OF

DF
1

Octei

IF

TF

SF

ZF

Exemple

STD

19

Arhitectura Microprocesoarelor

x86 Setul de instruciuni

Setarea fanionului
de validare a ntreruperilor

STI

Operanzi

Nr. de stri
2

Operanzi

Nr. de stri

DF

IF
1

TF

Octei

SF

ZF

AF

PF

CF

AF

PF

CF

AF
x

PF
x

CF
x

AF
?

PF
x

CF
0

AF

PF

CF

Exemple

ncarc elementele
unui ir din acumulator

STOS

OF

STI

OF

DF

IF

TF

Octei

SF

ZF

Exemple

11
1
STOSB
; pe octei
11
1
STOSW
; pe cuvinte
Obs.: Primitiva STOS poate fi nsoit de prefixul de repetabilitate REP; acesta adaug 9 stri.

SUB

d,s

Operanzi
AL|AX, data
r, data
mem, data
r1, r2
r, mem
mem, r

TEST

s1,s2

Operanzi
AL|AX, data
r, data
mem, data
r1, r2
r, mem

OF
x

Scdere

Nr. de stri
4
4
17+cAE
3
9+cAE
16+cAE

4
5
11+cAE
3
9+cAE

Operanzi

Nr. de stri

TF

SF
x

ZF
x

Exemple

2-3
3-4
3-6
2
2-4
2-4

SUB
SUB
SUB
SUB
SUB
SUB

OF
0

DF

AL,65H
SI,5280
[SI+14H],136H
CX,BX
DH,[BP+4]
[BP+10],CL

IF

TF

Octei

SF
x

ZF
x

Exemple

2-3
3-4
3-6
2
2-4

Introduce procesorul
n starea de wait, pn
cnd semnalul TEST=0

WAIT

IF

Octei

I logic nedistructiv

Nr. de stri

DF

TEST
TEST
TEST
TEST
TEST

OF

DF

Octei

AX,0040H
SI,0050
[BP],00100000B
SI,DI
AL,[55H]

IF

TF

SF

ZF

Exemple

WAIT

20

Arhitectura Microprocesoarelor

XCHG

x86 Setul de instruciuni

d,s

Transfer sursa
la destinaie i destinaia
la surs

Operanzi

Nr. de stri

r16
r1, r2
r, mem

3
4
17 + cAE

OF

TF

SF

ZF

AF

PF

CF

AF

PF

CF

AF
?

PF
x

CF
0

Exemple
XCHG
XCHG
XCHG

DF

BX ;XCHG AX este NOP


AL,BL
BX,[BP+SI]

IF

TF

SF

ZF

Translateaz

Operanzi

Nr. de stri
11

XOR

IF

Octei
1
2
2-4

OF
XLAT

DF

d,s

Operanzi
AL|AX, data
r, data
mem, data
r1, r2
r, mem
mem, r

Octei
XLAT

OF
0

SAU exclusiv

Nr. de stri
4
4
17+cAE
3
9+cAE
16+cAE

Exemple

DF

Octei

IF

TF

SF
x

ZF
x

Exemple

2-3
3-4
3-6
2
2-4
2-4

XOR
XOR
XOR
XOR
XOR
XOR

21

AX,5522H
SI,00C2H
[BX+DI],2244H
CX,BX
AX,[SI]
[SI+ALFA],DX

S-ar putea să vă placă și