Using the register points, Programming tip — setting the register pointers – Samsung S3C8275X User Manual

Page 46

Advertising
background image

S3C8275X/F8275X/C8278X/F8278X/C8274X/F8274X

ADDRESS

SPACES

2-13

USING THE REGISTER POINTS

Register pointers RP0 and RP1, mapped to addresses D6H and D7H in set 1, are used to select two movable
8-byte working register slices in the register file. After a reset, they point to the working register common area:
RP0 points to addresses C0H–C7H, and RP1 points to addresses C8H–CFH.

To change a register pointer value, you load a new value to RP0 and/or RP1 using an SRP or LD instruction.
(see Figures 2-8 and 2-9).

With working register addressing, you can only access those two 8-bit slices of the register file that are currently
pointed to by RP0 and RP1. You cannot, however, use the register pointers to select a working register space in
set 2, C0H–FFH, because these locations can be accessed only using the Indirect Register or Indexed
addressing modes.

The selected 16-byte working register block usually consists of two contiguous 8-byte slices. As a general
programming guideline, it is recommended that RP0 point to the "lower" slice and RP1 point to the "upper" slice
(see Figure 2-8). In some cases, it may be necessary to define working register areas in different (non-
contiguous) areas of the register file. In Figure 2-9, RP0 points to the "upper" slice and RP1 to the "lower" slice.

Because a register pointer can point to either of the two 8-byte slices in the working register block, you can
flexibly define the working register area to support program requirements.

PROGRAMMING TIP — Setting the Register Pointers

SRP

#70H

;

RP0

← 70H, RP1 ← 78H

SRP1

#48H

;

RP0

← no change, RP1 ← 48H,

SRP0

#0A0H

;

RP0

← A0H, RP1 ← no change

CLR

RP0

;

RP0

← 00H, RP1 ← no change

LD

RP1,#0F8H ;

RP0

← no change, RP1 ← 0F8H

FH (R15)

0H (R0)

16-Byte
Contiguous
Working
Register block

Register File

Contains 32

8-Byte Slices

RP0

RP1

8H
7H

0 0 0 0 1 X X X

0 0 0 0 0 X X X

8-Byte Slice

8-Byte Slice

Figure 2-8. Contiguous 16-Byte Working Register Block

Advertising
This manual is related to the following products: