AMD Confidential

User Manual September 12th, 2008

Appendix A 193

+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.
ADD reg/mem32,reg32
01 /r
Add reg32 to reg/mem32.