
Intel386
TM
DX MICROPROCESSOR
Table 2-3. BASE and INDEX Registers for 16- and 32-Bit Addresses
16-Bit Addressing
32-Bit Addressing
BASE REGISTER
INDEX REGISTER
BX,BP
SI,DI
Any 32-bit GP Register
Any 32-bit GP Register
Except ESP
1, 2, 4, 8
0, 8, 32 bits
SCALE FACTOR
DISPLACEMENT
none
0, 8, 16 bits
The OPERAND LENGTH and Address Length Pre-
fixes can be applied separately or in combination to
any instruction. The Address Length Prefix does not
allow addresses over 64K bytes to be accessed in
Real Mode. A memory address which exceeds
FFFFH will result in a General Protection Fault. An
Address Length Prefix only allows the use of the ad-
ditional Intel386 DX addressing modes.
When executing 32-bit code, the Intel386 DX uses
either 8-, or 32-bit displacements, and any register
can be used as base or index registers. When exe-
cuting 16-bit code, the displacements are either 8, or
16 bits, and the base and index register conform to
the 80286 model. Table 2-3 illustrates the differenc-
es.
2.6 DATA TYPES
The Intel386 DX supports all of the data types com-
monly used in high level languages:
Bit: A single bit quantity.
Bit Field: A group of up to 32 contiguous bits,
which spans a maximum of four bytes.
Bit String: A set of contiguous bits, on the Intel386
DX bit strings can be up to 4 gigabits long.
Byte: A signed 8-bit quantity.
Unsigned Byte: An unsigned 8-bit quantity.
Integer (Word): A signed 16-bit quantity.
Long Integer (Double Word): A signed 32-bit quan-
tity. All operations assume a 2’s complement rep-
resentation.
Unsigned Integer (Word): An unsigned 16-bit
quantity.
Unsigned Long Integer (Double Word): An un-
signed 32-bit quantity.
Signed Quad Word: A signed 64-bit quantity.
Unsigned Quad Word: An unsigned 64-bit quanti-
ty.
Offset: A 16- or 32-bit offset only quantity which
indirectly references another memory location.
Pointer: A full pointer which consists of a 16-bit
segment selector and either a 16- or 32-bit offset.
Char: A byte representation of an ASCII Alphanu-
meric or control character.
String: A contiguous sequence of bytes, words or
dwords. A string may contain between 1 byte and
4 Gbytes.
BCD: A byte (unpacked) representation of decimal
digits 0–9.
Packed BCD: A byte (packed) representation of
two decimal digits 0–9 storing one digit in each
nibble.
When the Intel386 DX is coupled with an Intel387
DX Numerics Coprocessor then the following com-
mon Floating Point types are supported.
Floating Point: A signed 32-, 64-, or 80-bit real
number representation. Floating point numbers
are supported by the Intel387 DX numerics co-
processor.
Figure 2-10 illustrates the data types supported by
the Intel386 DX and the Intel387 DX numerics co-
processor.
20