
Instruction Set Overview
2-5
Opcode
The Opcode column specifies the machine-language opcodes for the different forms of an
instruction. (For instruction prefixes, this column also includes the prefix.) Each opcode
includes one or more numbers in hexadecimal format, and zero or more parameters, which
are shown in italics. A parameter provides information about the contents of the Operand
Address byte for that particular form of the instruction.
This parameter
Indicates that
/
0–
/
7
The Auxiliary (aux) Field in the Operand Address byte specifies an
extension (from 0 to 7) to the opcode instead of a register. So for example,
the opcode for adding (ADD) an immediate byte to a general byte register
or a byte in memory is "80 /0
ib
". So the second byte of the opcode is
"mod 000 r/m", where mod and r/m are as defined in "Operand Address"
on page 2-2.
/0
The aux field is 0.
/1
The aux field is 1.
/2
The aux field is 2.
/3
The aux field is 3.
/4
The aux field is 4.
/5
The aux field is 5.
/6
The aux field is 6.
/7
The aux field is 7.
/
r
The Auxiliary (aux) field in the Operand Address byte specifies a register
instead of an opcode extension. If the Opcode byte specifies a byte register,
the registers are assigned as follows: AL=0, CL=1, DL=2, BL=3, AH=4,
CH=5, DH=6, and BH=7. If the Opcode byte specifies a word register, the
registers are assigned as follows: AX=0, CX=1, DX=2, BX=3, SP=4, BP=5,
SI=6, and DI=7.
/
sr
The Auxiliary (aux) field in the Operand Address byte specifies a segment
register as follows: ES=0, CS=1, SS=2, and DS=3.
cb
The byte following the Opcode byte specifies an offset.
cd
The doubleword following the Opcode byte specifies an offset and, in some
cases, a segment.
cw
The word following the Opcode byte specifies an offset and, in some cases,
a segment.
ib
The parameter is an immediate byte. The Opcode byte determines whether
it is interpreted as a signed or unsigned number.
iw
The parameter is an immediate word. The Opcode byte determines whether
it is interpreted as a signed or unsigned number.
rb
The byte register operand is specified in the Opcode byte. To determine
the Opcode byte for a particular register, add the hexadecimal value on the
left of the plus sign to the value of
rb
for that register, as follows:
AL=0, CL=1, DL=2, BL= 3, AH=4, CH=5, DH=6, and BH=7. So for example,
the opcode for moving an immediate byte to a register (MOV) is "B0+
rb
".
So B0–B7 are valid opcodes, and B0 is "MOV AL,
imm8
".
rw
The word register operand is specified in the Opcode byte. To determine
the Opcode byte for a particular register, add the hexadecimal value on the
left of the plus sign to the value of
rw
for that register, as follows:
AX=0, CX=1, DX=2, BX=3, SP=4, BP=5, SI=6, DI=7.
Summary of Contents for Am186 Series
Page 1: ...Am186 and Am188 Family Instruction Set Manual February 1997...
Page 10: ...Table of Contents x...
Page 18: ...Programming 1 8...
Page 40: ...Instruction Set Listing 3 14...