How Instruction Affect the Flags
Processor executes instruction Flags are affected Some instructions do not affect while some do Instruction Affect Flags MOV/XCHG none ADD/SUB all INC/DEC all except CF NEG all
Example: Show how the flags register affected by the addition of 38H and 2FH Sol: MOV BH,38H ;BH=38H ADD BH,2FH ;add 2F to BH, now BH=67H CF = 0 since there is no carry beyond d7 PF = 0 since there is an odd number of 1s in the result AF = 1 since there is a carry from d3 to d4 ZF = 0 since the result is not zero SF = 0 since d7 of the result is zero 0011 1000 + 0010 1111 0110 0111
Example Show how the flags register affected by MOV AL,9CH MOV DH,64H ADD AL,DH
Sol 1001 1100 + 0110 0100 0000 0000 CF = 1 since there is a carry beyond d7 PF = 1 since there is an even number of 1s in the result AF = 1 since there is a carry from d3 to d4 ZF = 1 since the result is zero SF = 0 since d7 of the result is zero
Example Show how the flags register affected by MOV AX,34F5H ADD AX,95EBH MOV BX,AAAAH ADD BX,5556H (You need to solve both as an assignment)
DEBUG Flag symbol Status Flags Set (1) Symbol Clear (0) Symbol CF CY (carry) NC (no carry) PF PE (even parity) PO (odd parity) AF AC (auxiliary carry) NA (no auxiliary carry) ZF ZR (zero) NZ (nonzero) SF NG (negative) PL (plus) OF OV (overflow) NV (no overflow) Control Flags DF DN (down) UP (up) IF EI (enable interrupt) DI (disable interrupt)