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