This addressing mode is also called direct addressing, because the
actual address of an operand is specified at the time of programming. Such
address is constant and is not modified in any way by the microprocessor.
The MC68000 has two variants of absolute addressing:
Absolute short addressing;
Absolute long addressing.
In absolute short addressing the address of the operand is a 16-bit
word following the instruction. This word is sign extended to 32 bits before
it is used to access the operand. Consequently, absolute short addresses
in the range $0000 to $7FFF are sign extended through $0000 0000 to $0000
7FFF, while absolute short addresses in the range $8000 through $FFFF are
sign extended through $FFFF 8000 to $FFFF FFFF; that is, the programmer
can use absolute short addressing to access only the top and the bottom
32K bytes of memory space.
Absolute long addressing requires two 16-bit words following an instruction
to generate a 32-bit absolute address. This procedure allows the whole
of memory to be accessed. The programmer does not have to worry about long
and short forms of addressing modes, as the assembler automatically selects
the appropriate version.
Here are some examples of absolute addressing.
Assembly Language Form | RTL Form | Action |
MOVE.L D3, $1234 | [M($1234)] <- [D3(16:31)]
[M($1236)] <- [D3(0:15)] |
The contents of register D3 are copied into memory
location $1234. Because the 68000's memory is byte organized, locations $1234 to $1237 are required. |
MOVE $FFFFC120, D2 | [D2] <- [M($FFFFC120)] | The contents of memory location $FFFF C120 are moved
into the register D2. |