intJ
80386
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:
[EO
I + (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.
130
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
ss
field MUST equal
00.
If index is 100
and
ss
does not
equal
00,
the effective address is undefined.