■ User Stack Pointer (USP)
This section describes the functions of the user stack pointer (USP: User Stack Pointer).
The user stack pointer (USP) consists of 32 bits. Figure 3.4-6 shows the configuration of user stack
pointer (USP) bit.
USP
The USP is the user stack pointer.
This register is used as an R15 general-purpose register if the S flag of the condition code
register (CCR) is "1".
The USP can also be specified explicitly.
The initial value upon reset is undefined.
This register cannot be used by the RETI instruction.
■ Multiply and Divide Registers (MDH/MDL)
This section describes the functions of the multiply and divide registers (MDH/MDL: Multiply &
Divide register).
The multiply and divide registers (MDH/MDL) consist of 32 bits. Figure 3.4-7 shows the
configuration of multiply and divide registers (MDH/MDL) bit.
Figure 3.4-7 Configuration of Multiply and Divide Registers Bit
MDH and MDL are the multiply and divide registers. Each register is 32 bits long.
The initial value upon reset is undefined.
❍ Functions when multiplication is executed
For a 32-bit-by-32-bit multiplication, the 64-bit-long operation result is stored in the multiply and
divide registers as follows:
•
MDH: High-order 32 bits
•
MDL: Low-order 32 bits
For a 16-bit-by-16-bit multiplication, the result is stored in one of the multiply and divide registers
as follows:
•
MDH: Undefined
•
MDL: 32-bit result
❍ Functions when division is executed
When a calculation is started, the dividend is stored in MDL.
When any of the DIV0S/DIV0U, DIV1, DIV2, DIV3, and DIV4S instructions is executed to
perform division, the result is stored in MDH and MDL as follows:
•
MDH: Remainder
•
MDL: Quotient
Figure 3.4-6 Configuration of User Stack Pointer Bit
bit31
bit31
MDH
MDL
CHAPTER 3 CPU AND CONTROL UNITS
bit0
[Initial value]
XXXXXXXX
bit0
H
65