© 1999 Scenix Semiconductor, Inc. All rights reserved.
- 10 -
www.scenix.com
SX18AC / SX20AC / SX28AC
4.0 SPECIAL-FUNCTION REGISTERS
The CPU uses a set of special-function registers to con-
trol the operation of the device.
The CPU registers include an 8-bit working register (W),
which serves as a pseudo accumulator. It holds the sec-
ond operand of an instruction, receives the literal in
immediate type instructions, and also can be program-
selected as the destination register.
A set of 31 file registers serves as the primary accumula-
tor. One of these registers holds the first operand of an
instruction and another can be program-selected as the
destination register. The first eight file registers include
the Real-Time Clock/Counter register (RTCC), the lower
eight bits of the 11-bit Program Counter (PC), the 8-bit
STATUS register, three port control registers for Port A,
Port B, Port C, the 8-bit File Select Register (FSR), and
INDF used for indirect addressing.
The five low-order bits of the FSR register select one of
the 31 file registers in the indirect addressing mode. Call-
ing for the file register located at address 00h (INDF) in
any of the file-oriented instructions selects indirect
addressing, which uses the FSR register. It should be
noted that the file register at address 00h is not a physi-
cally implemented register. The CPU also contains an 8-
level, 11-bit hardware push/pop stack for subroutine link-
age.
*In the SX18 package, Port C is not used, and address
07h is available as a general-purpose RAM location.
4.1 PC Register (02h)
The PC register holds the lower eight bits of the program
counter. It is accessible at run time to perform branch
operations.
4.2 STATUS Register (03h)
The STATUS register holds the arithmetic status of the
ALU, the page select bits, and the reset state. The
STATUS register is accessible during run time, except
that bits PD and TO are read-only. It is recommended
that only SETB and CLRB instructions be used on this
register. Care should be exercised when writing to the
STATUS register as the ALU status bits are updated
upon completion of the write operation, possibly leaving
the STATUS register with a result that is different than
intended.
Table 4-1. Special-Function Registers
Addr
Name
Function
00h
INDF
Used for indirect addressing
01h
RTCC
Real Time Clock/Counter
02h
PC
Program Counter (low byte)
03h
STATUS
Holds Status bits of ALU
04h
FSR
File Select Register
05h
RA
Port RA Control register
06h
RB
Port RB Control register
07h
RC*
Port RC Control register
PA2
PA1
PA0
TO
PD
Z
DC
C
Bit 7
Bit 0
Bit 7-5: Page select bits PA2:PA0
000 = Page 0 (000h 01FFh)
001 = Page 1 (200h 03FFh)
010 = Page 2 (400h 05FFh)
011 = Page 3 (600h 07FFh)
Bit 4:
Time Out bit, TO
1 = Set to 1 after power up and upon exe-
cution of CLRWDT or SLEEP instructions
0 = A watchdog time-out occurred
Bit 3:
Power Down bit, PD
1= Set to a 1 after power up and upon ex-
ecution of the CLRWDT instruction
0 = Cleared to a 0 upon execution of
SLEEP instruction
Bit 2:
Zero bit, Z
1 = Result of math operation is zero
0 = Result of math operation is non-zero
Bit 1:
Digit Carry bit, DC
After Addition:
1 = A carry from bit 3 occurred
0 = No carry from bit 3 occurred
After Subtraction:
1 = No borrow from bit 3 occurred
0 = A borrow from bit 3 occurred
Bit 0:
Carry bit, C
After Addition:
1 = A carry from bit 7 of the result occured
0 = No carry from bit 7 of the result oc-
cured
After Substraction:
1 = No borrow from bit 7 of the result oc-
cured
0 = A borrow from bit 7 of the result oc-
cured
Rotate (RR or RL) Instructions:
The carry bit is loaded with the low or high
order bit, respectively. When CF bit is
cleared, Carry bit works as input for ADD
and SUB instructions.