CHAPTER 3 CPU FUNCTION
48
User’s Manual U15195EJ5V0UD
3.2.1
Program register set
The program register set includes general-purpose registers and a program counter.
(1) General-purpose registers
Thirty-two general-purpose registers, r0 to r31, are available. Any of these registers can be used as a data
variable or address variable.
However, r0 and r30 are implicitly used by instructions, and care must be exercised when using these
registers. r0 is a register that always holds 0, and is used for operations using 0 and offset 0 addressing. r30
is used, by means of the SLD and SST instructions, as a base pointer for when memory is accessed. Also,
r1, r3 to r5, and r31 are implicitly used by the assembler and C compiler. Therefore, before using these
registers, their contents must be saved so that they are not lost. The contents must be restored to these
registers after they have been used. r2 is sometimes used by a real-time OS. r2 can be used as a register
for variables when it is not being used by the real-time OS.
Table 3-1. Program Registers
Name Usage
Operation
r0
Zero register
Always holds 0
r1 Assembler-reserved
register
Working register for generating address
r2
Address/data variable register (when not being used by the real-time OS)
r3
Stack pointer
Used to generate stack frame when function is called
r4
Global pointer
Used to access global variable in data area
r5
Text pointer
Register to indicate the start of the text area (where program
code is located)
r6 to r29
Address/data variable registers
r30
Element pointer
Base pointer for generating address when memory is
accessed
r31
Link pointer
Used by compiler when calling function
PC
Program counter
Holds instruction address during program execution
Remark
For detailed descriptions of r1, r3 to r5, and r31, which are used by the assembler and C compiler, refer
to
CA850 (C Compiler Package) Assembly Language User’s Manual (U10543E)
.
(2) Program counter (PC)
This register holds the instruction address during program execution. The lower 26 bits of this register are
valid, and bits 31 to 26 are fixed to 0. If a carry occurs from bit 25 to 26, it is ignored.
Bit 0 is fixed to 0, and branching to an odd address cannot be performed.
31
26 25
1 0
PC
Fixed to 0
Instruction address during execution
0
After reset
00000000H
Содержание PD703114
Страница 2: ...2 User s Manual U15195EJ5V0UD MEMO ...