Professional Documents
Culture Documents
Spisak Instrukcija
Spisak Instrukcija
Sintaksa
1. Data transfer
MOV dst, src
Opis
Move
Flags
ODITSZAPC
---------
PUSH src
---------
POP dst
---------
Exchange
---------
XLAT src-table
IN acc, port
Translate
Input byte or word
-------------------------
-------------------------
X- - -XXXXX
INC dst
Increment by 1
X- - -XXXX-
DAA
AAA
SUB dst, src
X- - -XXXXX
U- - -UUXUX
X- - -XXXXX
X- - -XXXXX
DEC dst
Decrement by one
X- - -XXXX-
- - - -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
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
X- - -XXXXX
AAS
DAS
MUL src
U- - -UUXUX
U - - -XXXXX
X - UUUUX
IMUL src
Integer multiplication
X - UUUUX
AAM
DIV src
U - - -UUXUX
U- - -UUUUU
IDIV src
Integer division
U- - -UUUUU
AAD
CWB
CWD
3. Bit manipulation
NOT dst
U- - -UUXUX
-----------------
Logical not
---------
Logical and
0- - -XXUX0
OR dst, src
Logical or
0 - - -XXUX0
Logical exclusive or
0- - 0XXUX0
Test
0 - - -XXUX0
X- - - - - - -X
X- - - - - - -X
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
X- - - - - - -X
Rotate left
X- - - - - - -X
Rotate right
X- - - - - - -X
X- - - - - - -X
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
---------
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
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
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
---------
- - 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
Legenda:
acc
mem
mem16
mem32
imd
imd8
reg
reg8
reg16
- - OO - - - - RRRRRRRRR
- akumulator
- memorija
- neposredni operand
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
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