Addressing Modes
(11/14/2005)

Addressing modes are the ways one can compute an effective address where the effective address is the address of operand used by instruction.

Addressing modes can be considered either from a functional point of view (i.e. an  assembler language p.o.v.) or an implementation point of view (a machine language p.o.v.). For example from a functional p.o.v. the PDP-8 instruction TAD X is an example of direct addressing (the effective address is part of the instruction). But from an implementation p.o.v. the PDP-8 supports two direct addressing modes, zero page and current page addressing, which implement different methods to calculate the effective address.


Classifying Instructions According to Number of Operands

Possible to have anywhere from 0 to 4 or more operands. Fewer operands make for shorter but less flexible instructions since some of the operands are implicit.

The "Standard" Addressing Modes - A Functional View

Level refers to the number of times memory is referenced to obtain the operand. "Half-levels" (non-canonical) refer to register look up.

EAddr denotes "effective address"; C( ) denotes "contents of" or "contents at".

Binding time refers to the latest time that the effective address can be fixed

The value of the Operand Field of an instruction can be considered as either an Address or a Displacement value



Some "Not-So-Standard" Addressing Modes


Stack Operations


Addressing Examples


Addressing Modes for the Intel 80x86 Architecture


Additional Pentium & Power PC Addressing Modes

    Pentium (additional modes)

    PowerPC



What is Really Used


Design Issues for Addressing Modes


Return to Comp 255 Home Page