(2) Stack manipulation instructions (PUSH AR, POP AR)
When the PUSH AR instruction is executed, the stack pointer (SP) is first decremented and then the address
register is stored in the address stack pointed to by the stack pointer.
When the POP AR instruction is executed, the contents of the address stack pointed to by the stack pointer
is transferred to the address register and then the stack pointer is incremented.
Also refer to CHAPTER 6.
(3) Indirect branch instruction (BR @AR)
When the BR @AR instruction is executed, the program branches to the address in program memory specified
by the value in the address register.
(4) Indirect subroutine call (CALL @AR)
When the CALL @AR instruction is executed, the subroutine located at the address in program memory
specified by the value in the address register is called.
(5) Address register used as peripheral register
The address register can be manipulated four bits at a time by using data memory manipulation instructions.
The address register can also be used as a peripheral register for transferring 16-bit data to the data buffer.
In other words, by using the PUT AR, DBF and GET DBF, AR instructions in addition to the data memory
manipulation instructions, the address register can be used to transfer 16-bit data to the data buffer.
Note that the data buffer is allocated in addresses 0CH to 0FH of BANK0 in data memory.
Figure 7-4. Address Register Used as a Peripheral Register
(BANK0)
44
CHAPTER 7 SYSTEM REGISTER (SYSREG)
Column address
0
1
2
3
4
5
6
0
1
2
3
4
5
6
7
AR3 AR2 AR1 AR0
Address register
16-bit data transfer available
7
8
9
A
B
C
D
E
DBF3 DBF2 DBF1 DBF0
System register
F
Data buffer