General purpose instructions, A.6.2 general purpose instructions, Amd confidential user manual november 21 – AMD SimNow Simulator 4.4.5 User Manual

Page 201

Advertising
background image

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.

Advertising