2.7ADDRESSING MODES

The Am186ER and Am188ER microcontrollers use eight categories of addressing modes to specify operands. Two addressing modes are provided for instructions that operate on register or immediate operands; six modes are provided to specify the location of an operand in a memory segment.

Register and Immediate Operands

νRegister Operand Mode—The operand is located in one of the 8- or 16-bit registers.

νImmediate Operand Mode—The operand is included in the instruction.

Memory Operands

A memory-operand address consists of two 16-bit components: a segment value and an offset. The segment value is supplied by a 16-bit segment register either implicitly chosen by the addressing mode or explicitly chosen by a segment override prefix. The offset, also called the effective address, is calculated by summing any combination of the following three address elements:

1.Displacement—an 8-bit or 16-bit immediate value contained in the instruction

2.Base—contents of either the BX or BP base registers

3.Index—contents of either the SI or DI index registers

Any carry from the 16-bit addition is ignored. Eight-bit displacements are sign-extended to 16-bit values.

Combinations of the above three address elements define the following six memory addressing modes (see Table 2-3):

1.Direct Mode—The operand offset is contained in the instruction as an 8- or 16-bit displacement element.

2.Register Indirect Mode—The operand offset is in one of the registers: SI, DI, BX, or BP.

3.Based Mode—The operand offset is the sum of an 8- or 16-bit displacement and the contents of a base register (BX or BP).

4.Indexed Mode—The operand offset is the sum of an 8- or 16-bit displacement and the contents of an index register (SI or DI).

5.Based Indexed Mode—The operand offset is the sum of the contents of a base register (BX or BP) and an index register (SI or DI).

6.Based Indexed Mode with Displacement—The operand offset is the sum of a base register’s contents, an index register’s contents, and an 8-bit or 16-bit displacement.

Table 2-3

Memory Addressing Mode Examples

 

 

 

 

 

Addressing Mode

Example

 

 

 

 

Direct

mov ax, ds:4

 

 

 

 

Register Indirect

mov ax, [si]

 

 

 

 

Based

mov ax, [bx]4

 

 

 

 

Indexed

mov ax, [si]4

 

 

 

 

Based Indexed

mov ax, [si][bx]

 

 

 

 

Based Indexed with Displacement

mov ax, [si][bx]4

 

 

 

2-10

Programming

Page 32
Image 32
AMD Am186TMER Addressing Modes, Register and Immediate Operands, Memory Operands, Memory Addressing Mode Examples