S3C84E5/C84E9/P84E9

ADDRESS SPACES

 

 

1 1 1 1 0 X X X

RP0

0 0 0 0 0 X X X

RP1

8-Byte Slice

Register File

Contains 32

8-Byte Slices

8-Byte Slice

F7H (R7)

F0H (R0)

7H (R15)

0H (R8)

16-byte Non- contiguous working register block

Figure 2-7. Non-Contiguous 16-Byte Working Register Block

FPROGRAMMING TIP — Using the RPs to Calculate the Sum of a Series of Registers

Calculate the sum of registers 80H–85H using the register pointer. The register addresses from 80H through 85H contain the values 10H, 11H, 12H, 13H, 14H, and 15 H, respectively:

SRP0

#80H

;

RP0 80H

ADD

R0,R1

;

R0

R0 + R1

ADC

R0,R2

;

R0

R0

+ R2 + C

ADC

R0,R3

;

R0

R0

+ R3 + C

ADC

R0,R4

;

R0

R0

+ R4 + C

ADC

R0,R5

;

R0

R0

+ R5 + C

The sum of these six registers, 6FH, is located in the register R0 (80H). The instruction string used in this example takes 12 bytes of instruction code and its execution time is 36 cycles. If the register pointer is not used to calculate the sum of these registers, the following instruction sequence would have to be used:

ADD

80H,81H

;

80H

(80H)

+

(81H)

 

 

ADC

80H,82H

;

80H

(80H) + (82H) + C

ADC

80H,83H

;

80H

(80H)

+

(83H)

+

C

ADC

80H,84H

;

80H

(80H)

+

(84H)

+

C

ADC

80H,85H

;

80H

(80H)

+

(85H)

+

C

Now, the sum of the six registers is also located in register 80H. However, this instruction string takes 15 bytes of instruction code rather than 12 bytes, and its execution time is 50 cycles rather than 36 cycles.

2-11

Page 46
Image 46
Samsung S3C84E5 #80H RP0 ← 80H, R0,R1 ← R0 + R1, R0,R2, + R2 + C, R0,R3, + R3 + C, R0,R4, + R4 + C, R0,R5, + R5 + C