Program Status Word (PSW) Register
The program status word (PSW) register, also referred to as the flag register, is an 8 bit register.Only 6 bits are used
- These four are CY (carry), AC (auxiliary carry), P (parity), and OV (overflow)
- They are called conditional flags, meaning that they indicate some conditions that resulted after an instruction was executed
- The PSW3 and PSW4 are designed as RS0 and RS1, and are used to change the bank
- The two unused bits are user-definable
CY | AC | F0 | RS1 | RS0 | OV | -- | P |
CY | PSW.7 | Carry flag |
AC | PSW.6 | Auxiliary carry flag |
-- | PSW.5 | Available to the user for general purpose |
RS1 | PSW.4 | Register Bank selector bit 1 |
RS0 | PSW.3 | Register Bank selector bit 0 |
OV | PSW.2 | Overflow flag |
-- | PSW.1 | User definable bit |
P | PSW.0 | Parity flag. Set/cleared by hardware each instruction cycle to indicate an odd/even number of 1 bits in the accumulator. |
Instructions that affect flag bits
Instruction | CY | OV | AC |
ADD | X | X | X |
ADDC | X | X | X |
SUBB | X | X | X |
MUL | 0 | X | |
DIV | 0 | X | |
DA | X | ||
RPC | X | ||
PLC | X | ||
SETB C | 1 | ||
CLR C | 0 | ||
CPL C | X | ||
ANL C, bit | X | ||
ANL C, /bit | X | ||
ORL C, bit | X | ||
ORL C, /bit | X | ||
MOV C, bit | X | ||
CJNE | X |
Example:
Show the status of the CY, AC and P flag after the addition of 38H and 2FH in the following instructions.
MOV A, #38H
ADD A, #2FH ;after the addition A=67H, CY=0
Solution:
38 00111000
+ 2F 00101111
67 01100111
CY = 0 since there is no carry beyond the D7 bit
AC = 1 since there is a carry from the D3 to the D4 bi
P = 1 since the accumulator has an odd number of 1s (it has five 1s)
Example:
Show the status of the CY, AC and P flag after the addition of 9CH and 64H in the following instructions.
MOV A, #9CH
ADD A, #64H ;after the addition A=00H, CY=1
Solution:
9C 10011100
+ 64 01100100
100 00000000
CY = 1 since there is a carry beyond the D7 bit
AC = 1 since there is a carry from the D3 to the D4 bi
P = 0 since the accumulator has an even number of 1s (it has zero 1s)
Example:
Show the status of the CY, AC and P flag after the addition of 88H and 93H in the following instructions.
MOV A, #88H
ADD A, #93H ;after the addition A=1BH, CY=1
Solution:
88 10001000
+ 93 10010011
11B 00011011
CY = 1 since there is a carry beyond the D7 bit
AC = 0 since there is no carry from the D3 to the D4 bi
P = 0 since the accumulator has an even number of 1s (it has four 1s)
No comments:
Post a Comment