AMD Confidential
User Manual
November 21
st
, 2008
Appendix A
189
+i
– Specifies an x87 floating-point stack operand, ST(
i
). The value is used only
with x87 floating-point instructions. It is added to the hexadecimal byte on the
left, forming a one-byte opcode. Valid values range from 0 to 7.
A.6.2 General Purpose Instructions
This chapter describes the function, mnemonic syntax, and opcodes that the simulator
simulates. General-purpose instructions are used in basic software execution. Most of
these instructions load, store, or operate on data location in the general-purpose registers
(GPRs), in memory, or in both. The remaining instructions are used to alter the sequential
flow of the program by branching to other locations within the program, or to entirely
different programs.
Instruction
Supported
Mnemonic
Opcode
Description
AAA
37
Create an unpacked BCD number.
AAD
D5
Adjust two BCD digits in AL and AH.
AAM
D4
Create a pair of unpacked BCD values
in AH and AL.
AAS
3F
Create an unpacked BCD number from
the contents of the AL register.
ADC AL,
imm8
14
ib
Add
imm8
to AL + CF.
ADC AL,
imm16
14
iw
Add
imm16
to AX + CF.
ADC EAX,
imm32
15
id
Add
imm32
to EAX + CF.
ADC RAX,
imm32
15
id
Add sign-ext.
imm32
to RAX + CF.
ADC
reg/mem8,imm8
80 /2
ib
Add
imm8
to
reg/mem8
+ CF.
ADC
reg/mem16,imm16
81 /2
iw
Add
imm16
to
reg/mem16
+ CF.
ADC
reg/mem32,imm32
81 /2
id
Add
imm32
to
reg/mem32
+ CF.
ADC
reg/mem64,imm32
81 /2
id
Add sign-ext.
imm32
to
reg/mem64
+
CF.
ADC
reg/mem16,imm8
83 /2
ib
Add sign-ext.
imm8
to
reg/mem16
+ CF.
ADC
reg/mem32,imm8
83 /2
ib
Add sign-ext.
imm8
to
reg/mem32
+ CF.
ADC
reg/mem64,imm8
83 /2
ib
Add sign-ext.
imm8
to
reg/mem64
+ CF.
ADC
reg/mem8,reg8
10 /r
Add
reg8
to
reg/mem8
+ CF.
ADC
reg/mem16,reg16
11 /r
Add
reg16
to
reg/mem16
+ CF.
ADC
reg/mem32,reg32
11 /r
Add
reg32
to
reg/mem32
+ CF.
ADC
reg/mem64,reg64
11 /r
Add
reg64
to
reg/mem64
+ CF.
ADC
reg8,reg/mem8
12 /r
Add
reg/mem8
to
reg8
+ CF.
ADC
reg16,reg/mem16
13 /r
Add
reg/mem16
to
reg16
+ CF.
ADC
reg32,reg/mem32
13 /r
Add
reg/mem32
to
reg32
+ CF.
ADC
reg64,reg/mem64
13 /r
Add
reg/mem64
to
reg64
+ CF.
ADD AL,
imm8
04
ib
Add
imm8
to AL.
ADD AX,
imm16
05
iw
Add
imm16
to AX.
ADD EAX,
imm32
05
id
ADD
imm32
to EAX.
ADD RAX,
imm64
05
id
ADD
imm64
to RAX.
ADD
reg/mem8,imm8
80 /0
ib
Add
imm8
to
reg/mem8
.
ADD
reg/mem16,imm16
81 /0
iw
Add
imm16
to
reg/mem16
.
ADD
reg/mem32,imm32
81 /0
id
Add
imm32
to
reg/mem32
.
ADD
reg/mem64,imm32
81 /0
id
Add sign-ext.
imm32
to
reg/mem64
.
ADD
reg/mem16,imm8
83 /0
ib
Add sign-ext.
imm8
to
reg/mem16
.
ADD
reg/mem32,imm8
83 /0
ib
Add sign-ext.
imm8
to
reg/mem32
.
ADD
reg/mem64,imm8
83 /0
ib
Add sign-ext.
imm8
to
reg/mem64
.
ADD
reg/mem8,reg8
00 /r
Add
reg8
to
reg/mem8
.
ADD
reg/mem16,reg16
01 /r
Add
reg16
to
reg/mem16
.