You are on page 1of 4

Spisak instrukcija za P iAPX86

Sintaksa
1. Data transfer
MOV dst, src

Opis
Move

Flags
ODITSZAPC
---------

PUSH src

Push word onto stack

---------

POP dst

Pop word off stack

---------

XCHG dst, src

Exchange

---------

XLAT src-table
IN acc, port

Translate
Input byte or word

-------------------------

OUT port, acc

Output byte or word

LDS dst, src


Load pointer using DS
LEA dst, src
Load effective address
LES dst, src
Load pointer using ES
LAHF
Load AH from flags
SAHF
Store AH into flags
POPF
Pop flags off stack
PUSHF
Push flags onto stack
2. Arithmetic instructions
ADD dst, src
Addition

-------------------------

ADC dst, src

Add with carry

X- - -XXXXX

INC dst

Increment by 1

X- - -XXXX-

DAA
AAA
SUB dst, src

Decimal adjust for addition


ASCII adjust for addition
Subtraction

X- - -XXXXX
U- - -UUXUX
X- - -XXXXX

SBB dst, src

Subtract with borrow

X- - -XXXXX

DEC dst

Decrement by one

X- - -XXXX-

iAPX86 SPISAK INSTRUKCIJA

- - - -RRRRR
RRRRRRRRR
--------X- - -XXXXX

Br. ciklusa
MOV mem, acc
MOV acc, mem
MOV reg, reg
MOV reg, mem
MOV mem, reg
MOV reg, imd
MOV mem, imd
MOV acc, mem
PUSH reg
PUSH sreg(#CS)
PUSH mem
POP reg
POP sreg(#CS)
POP mem
XCHG acc, reg16
XCHG mem, reg
XCHG reg, reg
XLAT src-table
IN acc, imd8
IN acc, DX
OUT imd8, acc
OUT DX, acc
LDS reg16, mem32
LEA reg16, mem16
LES reg16, mem32
LAHF
SAHF
POPF
PUSHF

10
10
2
8+EA
9+EA
4
10+EA
2
11
10
16+EA
8
8
17+EA
3
17+EA
4
11
10
8
10
8
16+EA
2+EA
16+EA
4
4
8
10

ADD reg, reg


ADD reg, mem
ADD mem, reg
ADD reg, imd
ADD mem, imd
ADD acc, imd
ADC reg, reg
ADC reg, mem
ADC mem, reg
ADC reg, imd
ADC mem, imd
ADC acc, imd
INC reg16
INC reg8
INC mem
DAA
AAA
SUB reg, reg
SUB reg, mem
SUB mem, reg
SUB reg, imd
SUB mem, imd
SUB acc, imd
SBB reg, reg
SBB reg, mem
SBB mem, reg
SBB reg, imd
SBB mem, imd
SBB acc, imd
DEC reg16
DEC reg8
DEC mem

3
9+EA
16+EA
4
17+EA
4
3
9+EA
16+EA
4
17+EA
4
2
3
15+EA
4
4
3
9+EA
16+EA
4
17+EA
4
3
9+EA
16+EA
4
17+EA
4
2
3
15+EA

NEG dst

Negate

X- - -XXXXU

CMP dst, src

Compare destination to source

X- - -XXXXX

AAS
DAS
MUL src

ASCII adjust for subtraction


Decimal adjust for subtraction
Multiplication, unsigned

U- - -UUXUX
U - - -XXXXX
X - UUUUX

IMUL src

Integer multiplication

X - UUUUX

AAM
DIV src

ASCII adjust for multiply


Division unsigned

U - - -UUXUX
U- - -UUUUU

IDIV src

Integer division

U- - -UUUUU

AAD
CWB
CWD
3. Bit manipulation
NOT dst

ASCII adjust for division


Convert byte to word
Convert word to doubleword

U- - -UUXUX
-----------------

Logical not

---------

AND dst, src

Logical and

0- - -XXUX0

OR dst, src

Logical or

0 - - -XXUX0

XOR dst, src

Logical exclusive or

0- - 0XXUX0

TEST dst, src

Test

0 - - -XXUX0

SAL dst, count /


SHL dst, count

Shift arithmetic/logical left


(synonims)

X- - - - - - -X

SHR dst, count

Shift logical right

X- - - - - - -X

iAPX86 SPISAK INSTRUKCIJA

NEG reg
NEG mem
CMP reg, reg
CMP reg, mem
CMP mem, reg
CMP reg, imd
CMP mem, imd
CMP acc, imd
AAS
DAS
MUL reg8
MUL reg16
MUL mem8
MUL mem16
IMUL reg8
IMUL reg16
IMUL mem8
IMUL mem16
AAM
DIV reg8
DIV reg16
DIV mem8
DIV mem16
IDIV reg8
IDIV reg16
IDIV mem8
IDIV mem16
AAD
CBW
CWD

3
16+EA
3
9+EA
9+EA
4
10+EA
4
4
4
70-77
118-133
(76-83)+EA
(124-139)+EA
80-98
128-154
(86-104)+EA
(134-160)+EA
83
80-90
144-162
(86-96)+EA
(158-168)+EA
101-112
165-184
(107-118)+EA
(171-190)+EA
80
2
5

NOT reg
NOT mem
AND reg, reg
AND reg, imd
AND reg, mem
AND mem, reg
AND mem, imd
AND acc, imd
OR reg, mem
OR mem, reg
OR acc, imd
OR reg, imd
OR mem, imd
XOR reg, reg
XOR reg, mem
XOR mem, reg
XOR acc, imd
XOR reg, imd
XOR mem, imd
TEST reg, reg
TEST reg, mem
TEST acc, imd
TEST reg, imd
TEST mem, imd
SAL reg, 1
SHL reg, imd8
SAL reg, CL
SHL mem, 1
SHL mem, imd8
SAL mem, CL
SHR reg, 1
SHR reg, CL
SHR reg, imd8
SHR mem, 1
SHR mem, imd8
SHR mem, CL

3
16+EA
3
4
9+EA
16+EA
17+EA
4
9+EA
16+EA
4
4
17+EA
3
9+EA
16+EA
4
4
17+EA
3
9+EA
4
4
17+EA
2
5+1/bit
8+4/bit
15+EA
17+1/bit
20+EA+4/bit
2
8+4/bit
5+1/bit
15+EA
17+1/bit
20+EA+4/bit

SAR dst, count

Shift arithmetic right

X- - - - - - -X

ROL dst, count

Rotate left

X- - - - - - -X

ROR dst, count

Rotate right

X- - - - - - -X

RCL dst, count

Rotate left trough carry

X- - - - - - -X

ROR dst, count

Rotate right trough carry

X- - - - - - -X

4. String manipulation
REP
Repeat string operation
--------REPE/REPZ
Repeat string operation while equal/ zero
REPNE/REPNZ
Repeat string operation while not equal/ not zero
MOVS dss, srs
Move string
--------REP
MOVSB/
Move string (byte / word)
--------MOVSW
REP
CMPS dss, srs
Compare string
X- - -XXXXX
REPE
SCAS dss
Scan string
X- - -XXXXX
REPNE
LODS srs
Load string (byte or word)
--------REP
STOS dss
Store (byte or word) string
--------REP
5. Control transfer
CALL target
Call a procedure
---------

RET const

Return from procedure

---------

JMP target

Jump

---------

JA/JNBE slb
JAE/JNB slb
JB/JNAE slb
JBE/JNA slb
JC slb
JE/JZ slb

Jump if above
Jump if above or equal
Jump if below
Jump if below or equal
Jump if carry
Jump if equal/zero

CF=0, ZF=0
CF=0
CF=1
CF=1, ZF=1
CF=1
ZF=1

iAPX86 SPISAK INSTRUKCIJA

SAR reg, 1
SAR reg, imd8
SAR reg, CL
SAR mem, 1
SAR mem, imd8
SAR mem, CL
ROL reg, 1
ROL reg, imd8
ROL reg, CL
ROL mem, 1
ROL mem, imd8
ROL mem, CL
ROR reg, 1
ROR reg, imd8
ROR reg, CL
ROR mem, 1
ROR mem, imd8
ROR mem, CL
RCL reg, 1
RCL reg, imd8
RCL reg, CL
RCL mem, 1
RCL mem, imd8
RCL mem, CL
RCR reg, 1
RCR reg, imd8
RCR reg, CL
RCR mem, 1
RCR mem, imd8
RCR mem, CL

2
5+1/bit
8+4/bit
15+EA
17+1/bit
20+EA+4/bit
2
5+1/bit
8+4/bit
15+EA
17+1/bit
20+EA+4/bit
2
5+1/bit
8+4/bit
15+EA
17+1/bit
20+EA+4/bit
2
5+1/bit
8+4/bit
15+EA
17+1/bit
20+EA+4/bit
2
5+1/bit
8+4/bit
15+EA
17+1/bit
20+EA+4/bit

MOVS dss, srs


MOVS dss, srs
MOVSB
MOVDW
CMPS dss, srs
CMPS dss, srs
SCAS dss
SCAS dss
LODS srs
LODS srs
STOS dss
STOS dss

18
2+17/rep
18
2+17/rep
22
9+22/rep
15
9+15/rep
12
9+13/rep
11
9+10/rep

CALL near-proc
CALL far-proc
CALL memptr16
CALL regptr16
CALL memptr32
RET intra-seg
RET intra-seg, const
RET inter-seg
RET inter-seg, const
JMP slb
JMP near-lbl
JMP far-lbl
JMP memptr16
JMP regptr16
JMP memptr32
JA slb
JAE slb
JB slb
JBE slb
JC slb
JE slb

19
28
21+EA
16
37+EA
8
12
18
17
15
15
15
18+EA
11
24+EA
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4

JG/JNLE slb
JGE/JNL slb
JL/JNGE slb
JLE/JNG slb
JNC slb
JNE/JNZ slb
JNO slb
JNP/JPO slb
JNS slb
JO slb
JP/JPE slb
JS slb
LOOPslb
LOOPE/LOOPZ
slb
LOOPNE/
LOOPNZ slb
JCXZ slb
INT int-type

Jump if greater
Jump if greater or equal
Jump if less
Jump if less or equal
Jump if not carry
Jump if not equal/not zero
Jump if not overflow
Jump if not parity / if odd
Jump if not sign
Jump if overflow
Jump if parity/even
Jump if sign
Loop
Loop if equal/zero

ZF=0, SF=0F
SF=0F
SF0F
ZF=1, SF0
CF=0
ZF=0
OF=0
PF=0
SF=0
OF=1
PF=1
SF=1
---------

Lopp if not equal/not zero


Jump if CX is zero
Interrupt

- - OO - - - - -

INTO
Interrupt is overflow
IRET
Interrupt return
6. Processor control
STC
Set carry flag
CLC
Clear carry flag
CMC
Complement carry flag
STD
Set direction flag
CLD
Clear direction flag
STI
Set interrupt flag
CLI
Clear interrupt flag
ESC eoc, src
Escape

--------1
--------0
--------X
-1-------0--------1-------0---------------------Halt
--------Lock bus
--------Wait while TEST pin not asserted - - - - - - - - No operation
---------

HLT
LOCK
WAIT
NOP

Oznake za flag registar: 0


1
X
U
R
Broj taktova za
izra~unavanje EA:

Legenda:
acc
mem
mem16
mem32
imd
imd8
reg
reg8
reg16

- - OO - - - - RRRRRRRRR

- akumulator
- memorija

- neposredni operand

iAPX86 SPISAK INSTRUKCIJA

16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
16 or 4
17 or 5
18 or 6

LOOPNE slb

19 or 5

JCXZ slb
INT imd8(type-3)
INT imd8(type#3)
INTO
IRET

16 or 4
52
51
53
24

STC
CLC
CMC
STD
CLD
STI
CLI
ESC imd, mem
ESC imd, reg
HLT
LOCK
WAIT
NOP

2
2
2
2
2
2
2
8+EA
2
2
2
3+5n
3

ne uti~e na stanje flega


postavlja fleg na 0
postavlja fleg na 1
bri{e ili postavlja fleg
vrednost flega nije va`e}a
obnovljena vrednost flega

Displacement
Base or Index
Displacement + Base or Index
Base + Index
Displacement + Base + Index

- registar

JNLE slb
JNL slb
JL slb
JNG slb
JNC slb
JNE slb
JNO slb
JNP slb
JNS slb
JO slb
JP slb
JS slb
LOOP slb
LOOPE slb

sreg
src
dst
srs
dss
slb
lbl
const

6
5
9
7 or 7
11 or 12

- segmentni registar
- source
- destination
- source string
- destination string
- short label
- label
- constant

memptr16
memeptr32
regptr16

- pointer u memoriji
- pointer u registru

You might also like