Basic Addressing Modes Information

We have load and store instructions to get data to and from memory. To make certain types of programming easier, such as accessing an array of data, the HC11 supports several different addressing modes, or ways of accessing memory locations.
  1. Inherent: The locations of data are implied by the instruction name
  2. Immediate: The actual data is located in memory immediately following the instruction's opcode
  3. Extended: The address of the data is located in memory immediately following the instruction's opcode
  4. Direct: A one-byte address of the data is located immediately following the opcode. This is the low-order byte of the address. The high order byte is assumed to be $00
  5. Relative: The value in the operand is computed from the relationship between where you are currently in the code in memory to where you are going to, the label.
  6. Indexed (not responsible for yet): The value in an index register (X or Y) is added to an offset value, which provides the final effective address of the data.
Ok, we've concentrated on load/store instructions, but the HC11 actually kind-of cheats. It allows memory accesses on most any form of instruction. So, the addressing modes apply to many, many instructions.