Intel 80C186XL Opcode, Mod R/M, Displacement, OVERVIEW OF THE 80C186 FAMILY ARCHITECTURE

Models: 80C186XL 80C188XL

1 405
Download 405 pages 42.62 Kb
Page 59
Image 59
Opcode

OVERVIEW OF THE 80C186 FAMILY ARCHITECTURE

The BX or BP register can be specified as the base register for an effective address calculation. Similarly, either the SI or the DI register can be specified as the index register. The displacement value is a constant. The contents of the base and index registers can change during execution. This allows one instruction to access different memory locations depending upon the current values in the base or base and index registers. The default base register for effective address calculations with the BP register is SS, although DS or ES can be specified.

Direct addressing is the simplest memory addressing mode (see Figure 2-13). No registers are in- volved, and the effective address is taken directly from the displacement of the instruction. Pro- grammers typically use direct addressing to access scalar variables.

With register indirect addressing, the effective address of a memory operand can be taken directly from one of the base or index registers (see Figure 2-14). One instruction can operate on various memory locations if the base or index register is updated accordingly. Any 16-bit general register can be used for register indirect addressing with the JMP or CALL instructions.

In based addressing, the effective address is the sum of a displacement value and the contents of the BX or BP register (see Figure 2-15). Specifying the BP register as a base register directs the Bus Interface Unit to obtain the operand from the current stack segment (unless a segment over- ride prefix is present). This makes based addressing with the BP register a convenient way to ac- cess stack data.

Opcode

Mod R/M

Displacement

EA

A1016-0A

Figure 2-13. Direct Addressing

2-30

Page 59
Image 59
Intel 80C186XL, 80C188XL Opcode, Mod R/M, Displacement, OVERVIEW OF THE 80C186 FAMILY ARCHITECTURE, 13.Direct Addressing