English
Language : 

PIC17C7XX_13 Datasheet, PDF (51/306 Pages) Microchip Technology – High-Performance 8-bit CMOS EPROM Microcontrollers with 10-bit A/D
PIC17C7XX
7.2.2.1 ALU Status Register (ALUSTA)
The ALUSTA register contains the status bits of the
Arithmetic and Logic Unit and the mode control bits for
the indirect addressing register.
As with all the other registers, the ALUSTA register can
be the destination for any instruction. If the ALUSTA
register is the destination for an instruction that affects
the Z, DC, C, or OV bits, then the write to these three
bits is disabled. These bits are set or cleared according
to the device logic. Therefore, the result of an instruc-
tion with the ALUSTA register as destination may be
different than intended.
For example, the CLRF ALUSTA, F instruction will clear
the upper four bits and set the Z bit. This leaves the
ALUSTA register as 0000u1uu (where u = unchanged).
It is recommended, therefore, that only BCF, BSF, SWAPF
and MOVWF instructions be used to alter the ALUSTA
register, because these instructions do not affect any
status bits. To see how other instructions affect the sta-
tus bits, see the “Instruction Set Summary.”
Note 1: The C and DC bits operate as a borrow and
digit borrow bit, respectively, in subtraction.
See the SUBLW and SUBWF instructions for
examples.
2: The overflow bit will be set if the 2’s comple-
ment result exceeds +127, or is less than -128.
The Arithmetic and Logic Unit (ALU) is capable of car-
rying out arithmetic or logical operations on two oper-
ands, or a single operand. All single operand
instructions operate either on the WREG register, or
the given file register. For two operand instructions, one
of the operands is the WREG register and the other is
either a file register, or an 8-bit immediate constant.
REGISTER 7-1: ALUSTA REGISTER (ADDRESS: 04h, UNBANKED)
R/W-1
FS3
bit 7
R/W-1
FS2
R/W-1
FS1
R/W-1
FS0
R/W-x
OV
R/W-x
Z
R/W-x
DC
R/W-x
C
bit 0
bit 7-6
bit 5-4
bit 3
bit 2
bit 1
bit 0
FS3:FS2: FSR1 Mode Select bits
00 = Post auto-decrement FSR1 value
01 = Post auto-increment FSR1 value
1x = FSR1 value does not change
FS1:FS0: FSR0 Mode Select bits
00 = Post auto-decrement FSR0 value
01 = Post auto-increment FSR0 value
1x = FSR0 value does not change
OV: Overflow bit
This bit is used for signed arithmetic (2’s complement). It indicates an overflow of the 7-bit
magnitude, which causes the sign bit (bit7) to change state.
1 = Overflow occurred for signed arithmetic (in this arithmetic operation)
0 = No overflow occurred
Z: Zero bit
1 = The result of an arithmetic or logic operation is zero
0 = The result of an arithmetic or logic operation is not zero
DC: Digit carry/borrow bit
For ADDWF and ADDLW instructions.
1 = A carry-out from the 4th low order bit of the result occurred
0 = No carry-out from the 4th low order bit of the result
Note: For borrow, the polarity is reversed.
C: Carry/borrow bit
For ADDWF and ADDLW instructions. Note that a subtraction is executed by adding the two’s
complement of the second operand.
For rotate (RRCF, RLCF) instructions, this bit is loaded with either the high or low order bit of the
source register.
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
Note: For borrow, the polarity is reversed.
Legend:
R = Readable bit
- n = Value at POR Reset
W = Writable bit
’1’ = Bit is set
U = Unimplemented bit, read as ‘0’
’0’ = Bit is cleared x = Bit is unknown
 1998-2013 Microchip Technology Inc.
DS30289C-page 51