Indirect Addressing
6-16
Example 6–17. Indirect Addressing With Postindex Add and Circular Modify
The address of the operand to fetch is the contents of an auxiliary register
(AR
n). After the operand is fetched, the index register (IR0 or IR1) is added
to the auxiliary register. This value is evaluated using circular addressing and
replaces the contents of the auxiliary register.
Operation:
operand address = AR
n
AR
n = circ(ARn + IRm)
Assembler Syntax:
*AR
n ++ (IRm)%
Modification Field:
01110
if
m = 0
10110
if
m = 1
Index
(+)
0
0
31
24 23
Address
x
x
AR
n
31
x
x
0
31
24 23
Operand
(%)
IR
m
Example 6–18. Indirect Addressing With Postindex Subtract and Circular Modify
The address of the operand to fetch is the contents of an auxiliary register (AR
n).
After the operand is fetched, the index register (IR0 or IR1) is subtracted from the
auxiliary register. This result is evaluated using circular addressing and replaces
the contents of the auxiliary register.
Operation:
operand address = AR
n
AR
n = circ(ARn – IRm)
Assembler Syntax:
*AR
n – – (IRm)%
Modification Field:
01111
if
m = 0
10111
if
m = 1
(–)
0
0
31
24 23
Address
x
x
AR
n
31
x
x
0
31
24 23
Index
Operand
(%)
IR
m