intJ80386

Encoding of 32-bit Address Mode ("mod rim" byte and "s-i-b" byte present):

mod base

Effective Address

00000 OS: [EAX + (scaled index)]

00001 OS: [ECX + (scaled index)]

00010 OS: [EOX + (scaled index)]

00011 OS: [ESX + (scaled index)]

00100 SS: [ESP + (scaled index)]

00101 OS: [d32 + (scaled index)]

00110 OS:[ESI + (scaled index)]

00111 OS: [EOI + (scaled index)]

01000 OS: [EAX + (scaled index) + dB]

01001 OS: [ECX + (scaled index) +dB]

01010 OS: [EOX + (scaled index) +dB]

01011 OS: [ESX + (scaled index) + dB]

01100 SS; [ESP + (scaled index) + dB]

01101 SS: [ESP + (scaled index) +dB]

01110 OS: [ESI + (scaled index) + dB]

01 111 OS: [EOI + (scaled index) +dB]

10000 OS: [EAX + (scaled index) + d32]

10001 OS: [ECX + (scaled index) +d32]

10010 OS: [EOX + (scaled index) + d32]

10011 OS: [ESX + (scaled index) +d32]

10100 SS; [ESP + (scaled index) +d32]

10101 SS: [ESP + (scaled index) + d32]

10110 OS: [ESI + (scaled index) + d32]

10 111 OS: [EOI + (scaled index) + d32]

NOTE:

Mod field in "mod rim" byte; ss, index, base fields in "s-i-b" byte.

ss

Scale Factor

00

x1

01

x2

10

x4

11

xB

index

Index Register

000

EAX

001

ECX

010

EOX

011

ESX

100

no index reg* *

101

ESP

110

ESI

111

EOI

"IMPORTANT NOTE:

When index field is 100, indicating "no index register," then

ssfield MUST equal 00. If index is 100 and ss does not equal 00, the effective address is undefined.

130

Page 191
Image 191
Intel 80386 manual Scale Factor