Professional Documents
Culture Documents
8086 Sys
8086 Sys
txt
Instruction set of the 8086/8088 in systematical order
source: mcs-86 product description, Intel corporation, June 1978
AMD, MOS microprocessors and peripherals 1983 data book (for 186,286)
19880607/wjvg
00110111 AAA
00100111 DAA
00111111 AAS
00101111 DAS
11111000 CLC
11110101 CMC
11111001 STC
11111100 CLD
11111101 STD
11111010 CLI
11111011 STI
11110100 HLT
10011011 WAIT
11011xxx mmxxxr/m ESC
11110000 LOCK
d:
0 from
1 to
w:
0 byte
1 word
mm:
00 disp=0, except if r/m=110 then ea=disphigh:disp-low
01 disp=disp-low sign extended to 16 bits
10 disp=disphigh:disp-low
11 r/m is reg field
r/m:
000 ea=BX+SI+disp
001 ea=BX+DI+disp
010 ea=BP+SI+disp
011 ea=BP+DI+disp
100 ea=SI+disp
101 ea=DI+disp
110 ea=BP+disp, except if mm=00 then ea=disphigh:disp-low
111 ea=BX+disp
sw:
01 16 bits of imm data form the operand
11 an imm data byte is sign extended to form the 16-bit operand
v:
0 count=0
1 count in CL
x don't care
z is used for string primitives for comparison with zf flag
w reg:
0 000 AL
0 001 CL
0 010 DL
0 011 BL
0 100 AH
0 101 CH
0 110 DH
0 111 BH
1 000 AX
1 001 CX
1 010 DX
1 011 BX
1 100 SP
1 101 BP
1 110 SI
1 111 DI
sr:
00 ES
01 CS
10 SS
11 DS
flags = -:-:-:-:OF:DF:IF:TF:SF:ZF:-:AF:-:PF:-:CF
It has the 8086 instruction set. The 386 instruction set is based on this
one with a prefix byte of 0x66 to change the operand size to 32 bits
and 0x67 to change the addressing size to 32 bits.
When you use 32 bits addressing, the coding of the addressing modes
changes...