Figures Fig.2
Fig.2-1 Two-Component Pointer
Figure 2-1. Two-Component Pointer
. .
| |
|---------------|-+
32 0 | | |
+-------+-------+ +---+ |---------------| |
| OFFSET |---| + |--->| OPERAND | |
+-------+-------+ +---+ |---------------| |- SELECTED SEGMENT
^ | | |
16 0 | | | |
+-------+ | | | |
|SEGMENT|---------o----->|---------------|-+
+-------+ | |
| |
| |
. .
Fig.2-2 Fundamental Data Types
Figure 2-2. Fundamental Data Types
7 0
+---------------+
| BYTE | BYTE
+---------------+
15 7 0
+-------------------------------+
| HIGH BYTE | LOW BYTE | WORD
+-------------------------------+
address n+1 address n
31 23 15 7 0
+---------------+---------------+---------------+--------------+
| HIGH WORD | LOW WORD | DOUBLEWORD
+---------------+---------------+---------------+--------------+
address n+3 address n+2 address n+1 address n
Fig.2-3 Bytes, Words, and Doublewords in Memory
Figure 2-3. Bytes, Words, and Doublewords in Memory
MEMORY
BYTE VALUES
All values in hexadecimal
ADDRESS +----------+
E| |
|----------|--+
D| 7A | |- DOUBLE WORD AT ADDRESS A
|----------|-+| CONTAINS 7AFE0636
C| FE | ||
|----------| |- WORD AT ADDRESS B
B| 06 | || CONTAINS FE06
|----------|-+|
A| 36 | |
|----------|--|
9| 1F | |- WORD AT ADDRESS 9
|----------|--+ CONTAINS IF
8| |
|----------|--+
7| 23 | |
|----------| |- WORD AT ADDRESS 6
6| OB | | CONTAINS 23OB
|----------|--+
5| |
|----------|
4| |
|----------|--+
3| 74 | |
|----------|-+|- WORD AT ADDRESS 2
2| CB | || CONTAINS 74CB
|----------|--+
1| 31 | |-- WORD AT ADDRESS 1
|----------|-+ CONTAINS CB31
0| |
+----------+
Fig.2-4 80386 Data Types
Figure 2-4. 80386 Data Types
+1 0
7 0 7 0 15 14 8 7 0
BYTE +-------+ BYTE +-------+ WORD +---------------+
INTEGER || | | ORDINAL | | | INTEGER || | | | |
+-------+ +-------+ +---------------+
SIGN BIT++------+ +-------+ SIGN BIT++MSB |
MAGNITUDE MAGNITUDE +---------------+
MAGNITUDE
+1 0 +3 +2 +1 0
15 0 31 16 15 0
WORD +---------------+ DOUBLEWORD +-------------------------------+
ORDINAL || | | | | INTEGER || | | | | | | | |
+---------------+ +-------------------------------+
| | SIGN BIT++MSB |
+---------------+ +-------------------------------+
MAGNITUDE MAGNITUDE
+3 +2 +1 0
31 0
DOUBLEWORD +-------------------------------+
ORDINAL | | | | | | | | |
+-------------------------------+
+-------------------------------+
MAGNITUDE
+N +1 0
7 0 7 0 7 0
BINARY CODED +-------+ +---------------+
DECIMAL (BCD) | | | ... | | | | |
+-------+ +---------------+
BCD BCD BCD
DIGIT N DIGIT 1 DIGIT 0
+N +1 0
7 0 7 0 7 0
PACKED +-------+ +---------------+
BCD | | | ... | | | | |
+-------+ +---------------+
+---+ +---+
MOST LEAST
SIGNIFICANT SIGNIFICANT
DIGIT DIGIT
+N +1 0
7 0 7 0 7 0
BYTE +-------+ +---------------+
STRING | | | ... | | | | |
+-------+ +---------------+
-2 GIGABYTES
+2 GIGABYTES 210
BIT +------------------------- --------------------+
STRING ||||| || |||||
+-------------------------- -------------------+
BIT 0
+3 +2 +1 0
31 0
NEAR 32-BIT +-------------------------------+
POINTER | | | | | | | | |
+-------------------------------+
+-------------------------------+
OFFSET
+5 +4 +3 +2 +1 0
48 0
FAR 48-BIT +-----------------------------------------------+
POINTER | | | | | | | | | | | | |
+-----------------------------------------------+
+-----------------------------------------------+
SELECTOR OFFSET
+5 +4 +3 +2 +1 0
32-BIT +-----------------------------------------------+
BIT FIELD | | | | | | | | | | | | |
+-----------------------------------------------+
|<--------- BIT FIELD --------->|
1 TO 32 BITS
Fig.2-5 80386 Applications Register Set
Figure 2-5. 80386 Applications Register Set
GENERAL REGISTERS
31 23 15 7 0
+-----------------+-----------------+-----------------------------------+
| EAX AH AX AL |
|-----------------+-----------------+-----------------------------------|
| EDX DH DX DL |
|-----------------+-----------------+-----------------------------------|
| ECX CH CX CL |
|-----------------+-----------------+-----------------------------------|
| EBX BH BX BL |
|-----------------+-----------------+-----------------------------------|
| EBP BP |
|-----------------+-----------------+-----------------+-----------------|
| ESI SI |
|-----------------+-----------------+-----------------+-----------------|
| EDI DI |
|-----------------+-----------------+-----------------+-----------------|
| ESP SP |
+-----------------+-----------------+-----------------+-----------------+
15 7 0
+-----------------+-----------------+
| CS (CODE SEGMENT) |
|-----------------+-----------------|
| SS (STACK SEGMENT) |
SEGMENT |-----------------+-----------------|
REGISTERS | DS (DATA SEGMENT) |
|-----------------+-----------------|
| ES (DATA SEGMENT) |
|-----------------+-----------------|
| FS (DATA SEGMENT) |
|-----------------+-----------------|
| GS (DATA SEGMENT) |
+-----------------+-----------------+
STATUS AND INSTRUCTION REGISTERS
31 23 15 7 0
+-----------------+-----------------+-----------------+-----------------+
| EFLAGS |
|-----------------------------------------------------------------------|
| EIP (INSTRUCTION POINTER) |
+-----------------+-----------------+-----------------+-----------------+
Fig.2-6 Use of Memory Segmentation
Figure 2-6. Use of Memory Segmentation
+----------------+ +----------------+
| MODULE | | MODULE |
| A |<--+ +-->| A |
| CODE | | | | DATA |
+----------------+ | +------------------+ | +----------------+
+--| CS (CODE) | |
|------------------| |
+----------------+ +--| SS (STACK) | | +----------------+
| | | |------------------| | | DATA |
| STACK |<--+ | DS (DATA) |--++->| STRUCTURE |
| | |------------------| | | 1 |
+----------------+ | ES (DATA) |---+ +----------------+
|------------------|
+--| FS (DATA) |
+----------------+ | |------------------| +----------------+
| DATA | | | GS (DATA) |--+ | DATA |
| STRUCTURE |<--+ +------------------+ +-->| STRUCTURE |
| 2 | | 3 |
+----------------+ +----------------+
Fig.2-7 80386 Stack
Figure 2-7. 80386 Stack
31 0
+------+------+------+------+ <-------BOTTOM OF STACK
| | (INITIAL ESP VALUE)
|------+------+------+------|
| |
|------+------+------+------| ^
| | |POP
|------+------+------+------| |
| | |
|------+------+------+------| | TOP OF +-------------+
| | <------+-----------------| ESP |
|------+------+------+------| | STACK +-------------+
| | |
| | |
| | |PUSH
| | v
Fig.2-8 EFLAGS Register
Figure 2-8. EFLAGS Register
16-BIT FLAGS REGISTER
A
+--------------------------------+
31 23 17 15 13 9 8 7 6 5 4 3 2 1 0
++---------------+---------------+----------------+--------------+
| |V|R| |N|I/O |O|D|I|T|S|Z| |A| |P| |C|
|0 0 0 0 0 0 0 0 0 0 0 0 0 0| | |0| | | | | | | | |0| |0| |1| |
| |M|F| |T| PL |F|F|F|F|F|F| |F| |F| |F|
+----------------------------------------------------------------+
| | | | | | | | | | | | |
VIRTUAL 8086 MODE---X--------+ | | | | | | | | | | | |
RESUME FLAG---X----------+ | | | | | | | | | | |
NESTED TASK FLAG---X--------------+ | | | | | | | | | |
I/O PRIVILEGE LEVEL---X-----------------+ | | | | | | | | |
OVERFLOW---S---------------------+ | | | | | | | |
DIRECTION FLAG---C-----------------------+ | | | | | | |
INTERRUPT ENABLE---X-------------------------+ | | | | | |
TRAP FLAG---S---------------------------+ | | | | |
SIGN FLAG---S-----------------------------+ | | | |
ZERO FLAG---S-------------------------------+ | | |
AUXILIARY CARRY---S-----------------------------------+ | |
PARITY FLAG---S---------------------------------------+ |
CARRY FLAG---S-------------------------------------------+
S = STATUS FLAG, C = CONTROL FLAG, X = SYSTEM FLAG
NOTE: 0 OR 1 INDICATES INTEL RESERVED. DO NOT DEFINE
Fig.2-9 Instruction Pointer Register
Figure 2-9. Instruction Pointer Register
16-BIT IP REGISTER
+-----------------------------------+
31 23 15 7 0
+-----------------+-----------------+-----------------+-----------------+
| EIP (INSTRUCTION POINTER) |
+-----------------+-----------------+-----------------+-----------------+
Fig.2-10 Effective Address Computation
Figure 2-10. Effective Address Computation
SEGMENT + BASE + (INDEX * SCALE) + DISPLACEMENT
+ +
| --- | + + + +
+ + | EAX | | EAX | | 1 |
| CS | | ECX | | ECX | | | + +
| SS | | EDX | | EDX | | 2 | | NO DISPLACEMENT |
-| DS |- + -| EBX |- + -| EBX |- * -| |- + -| 8-BIT DISPLACEMENT |-
| ES | | ESP | | --- | | 4 | | 32-BIT DISPLACEMENT |
| FS | | EBP | | EBP | | | + +
| GS | | ESI | | ESI | | 6 |
+ + | EDI | | EDI | + +
+ + + +