AMD Athlon™ Processor x86 Code Optimization

Execution Unit Resources

22007E/0 — November 1999

Terminology

 

The execution units operate with two types of register values—

 

operands and results. There are three operand types and two

 

result types, which are described in this section.

Operands

The three types of operands are as follows:

 

Address register operands—Used for address calculations of

 

load and store instructions

 

 

Data register operands—Used for register instructions

 

Store data register operands—Used for memory stores

Results

The two types of results are as follows:

 

Data register results—Produced by load or register

 

instructions

 

 

Address register results—Produced by LEA or PUSH

 

instructions

 

Examples

The following examples illustrate the operand and result

 

definitions:

 

 

ADD

EAX, EBX

 

 

The ADD instruction has two data register operands (EAX

 

and EBX) and one data register result (EAX).

 

MOV

EBX, [ESP+4*ECX+8]

;Load

 

The Load instruction has two address register operands

 

(ESP and ECX as base and index registers, respectively)

 

and a data register result (EBX).

 

MOV

[ESP+4*ECX+8], EAX

;Store

The Store instruction has a data register operand (EAX) and two address register operands (ESP and ECX as base and index registers, respectively).

LEA ESI, [ESP+4*ECX+8]

The LEA instruction has address register operands (ESP and ECX as base and index registers, respectively), and an address register result (ESI).

148

Execution Unit Resources

Page 164
Image 164
AMD x86 manual Execution Unit Resources, Terminology, Operands, Results, Examples