![](http://datasheet.mmic.net.cn/110000/MC68HC705G4_datasheet_3506447/MC68HC705G4_50.png)
Page 40
MOTOROLA
Section 4: CPU CORE
MC68HC05G3 (705G4) Specification Rev. 1.1
4.3
ADDRESSING MODES
The MCU uses 10 different addressing modes to provide the programmer with an
opportunity to optimize the code for all situations. The various indexed addressing modes
make it possible to locate data tables, code conversion tables, and scaling tables anywhere
in the memory space. Short indexed accesses are single-byte instructions; the longest
instructions (three bytes) permit accessing tables throughout memory. Short and long
absolute addressing is also included. One- or 2-byte direct addressing instructions access
all data bytes in most applications. Extended addressing permits jump instructions to reach
all memory.
The term effective address (EA) is used in describing the various addressing modes.
Effective address is defined as the address from which the argument for an instruction is
fetched or stored.
4.3.1
IMMEDIATE
In the immediate addressing mode, the operand is contained in the byte immediately
following the opcode. The immediate addressing mode is used to access constants that do
not change during program execution (for example, a constant used to initialize a loop
counter).
4.3.2
DIRECT
In the direct addressing mode, the effective address of the argument is contained in a single
byte following the opcode byte. Direct addressing allows the user to directly address the
lowest 256 bytes in memory ($0000-$00FF) with a single 2-byte instruction.
4.3.3
EXTENDED
In the extended addressing mode, the effective address of the argument is contained in the
two bytes following the opcode byte. Instructions with extended addressing mode are
capable of referencing arguments anywhere in memory with a single 3-byte instruction.
When using the Motorola assembler, the user need not specify whether an instruction uses
direct or extended addressing. The assembler automatically selects the shortest form of the
instruction.
4.3.4
RELATIVE
The relative addressing mode is only used in branch instructions. In relative addressing,
the contents of the 8-bit signed offset byte, which is the last byte of the instruction, is added
to the PC if, and only if, the branch conditions are true. Otherwise, control proceeds to the
next instruction. The span of relative addressing is from -127 to +128 from the address of
the next opcode. The programmer need not calculate the offset when using the Motorola
assembler, since it calculates the proper offset and checks to see that it is within the span
of the branch.