3.5.19 CPU STATUS Register

Note:
  1. The IPL[2:0] bits are concatenated with the IPL[3] bit (CORCON[3]) to form the CPU Interrupt Priority Level. The value in parentheses indicates the IPL, if IPL[3] = 1. User interrupts are disabled when IPL[3] = 1.
  2. The IPL[2:0] Status bits are read-only when the NSTDIS bit (INTCON1[15]) = 1.
  3. A data write to the SR register can modify the SA and SB bits by either a data write to SA and SB or by clearing the SAB bit. To avoid a possible SA or SB Bit Write Race condition, the SA and SB bits should not be modified using bit operations.

Legend: C = Clearable bit

Name: SR
Offset: 0x42

Bit 15141312111098 
 OAOBSASBOABSABDADC 
Access R/WR/WR/WR/WR/CR/CRR/W 
Reset 00000000 
Bit 76543210 
 IPL[2:0]RANOVZC 
Access R/WR/WR/WRR/WR/WR/WR/W 
Reset 00000000 

Bit 15 – OA Accumulator A Overflow Status bit

ValueDescription
1

Accumulator A has overflowed

0

Accumulator A has not overflowed

Bit 14 – OB Accumulator B Overflow Status bit

ValueDescription
1

Accumulator B has overflowed

0

Accumulator B has not overflowed

Bit 13 – SA  Accumulator A Saturation ‘Sticky’ Status bit(3)

ValueDescription
1

Accumulator A is saturated or has been saturated at some time

0

Accumulator A is not saturated

Bit 12 – SB  Accumulator B Saturation ‘Sticky’ Status bit(3)

ValueDescription
1

Accumulator B is saturated or has been saturated at some time

0

Accumulator B is not saturated

Bit 11 – OAB OA || OB Combined Accumulator Overflow Status bit

ValueDescription
1

Accumulator A or B has overflowed

0

Neither Accumulator A or B has overflowed

Bit 10 – SAB SA || SB Combined Accumulator ‘Sticky’ Status bit

ValueDescription
1

Accumulator A or B is saturated or has been saturated at some time

0

Neither Accumulator A or B is saturated

Bit 9 – DA  DO Loop Active bit

ValueDescription
1

DO loop is in progress

0

DO loop is not in progress

Bit 8 – DC  MCU ALU Half Carry/Borrow bit

ValueDescription
1 A carry-out from the 4th low-order bit (for byte-sized data) or 8th low-order bit (for word-sized data) of the result occurred
0 No carry-out from the 4th low-order bit (for byte-sized data) or 8th low-order bit (for word-sized data) of the result occurred

Bits 7:5 – IPL[2:0]  CPU Interrupt Priority Level Status bits(1,2)

ValueDescription
111

CPU Interrupt Priority Level is 7 (15); user interrupts are disabled

110

CPU Interrupt Priority Level is 6 (14)

101

CPU Interrupt Priority Level is 5 (13)

100

CPU Interrupt Priority Level is 4 (12)

011

CPU Interrupt Priority Level is 3 (11)

010

CPU Interrupt Priority Level is 2 (10)

001

CPU Interrupt Priority Level is 1 (9)

000

CPU Interrupt Priority Level is 0 (8)

Bit 4 – RA  REPEAT Loop Active bit

ValueDescription
1

REPEAT loop is in progress

0

REPEAT loop is not in progress

Bit 3 – N MCU ALU Negative bit

ValueDescription
1

Result was negative

0

Result was non-negative (zero or positive)

Bit 2 – OV MCU ALU Overflow bit

This bit is used for signed arithmetic (two’s complement). It indicates an overflow of the magnitude that causes the sign bit to change state.

ValueDescription
1

Overflow occurred for signed arithmetic (in this arithmetic operation)

0

No overflow occurred

Bit 1 – Z MCU ALU Zero bit

ValueDescription
1

An operation that affects the Z bit has set it at some time in the past

0

The most recent operation that affects the Z bit has cleared it (i.e., a non-zero result)

Bit 0 – C  MCU ALU Carry/Borrow bit

ValueDescription
1

A carry-out from the Most Significant bit of the result occurred

0

No carry-out from the Most Significant bit of the result occurred