Elimantas,
As GJ answered you, you cannot directly pop back to the register flag since some of these flags are READ-ONLY flags, but instead use instructions targeting some of these flags individually.
CLC - Clear Carry Flag
STC - Set Carry Flag
CLD - Clear Direction Flag
STD - Set Direction Flag
CLI - Clear Interrupt Flag
STI - Set Interrupt Flag
CMC - Complement Carry flag. Inverts value of CF.
LAHF - Load AH with low 8bits of Register Flags:
AH bit: 7 6 5 4 3 2 1 0
[SF] [ZF] [0] [AF] [0] [PF] [1] [CF]
SAHF - Store AH into low 8bits of Register Flags:
AH bit: 7 6 5 4 3 2 1 0
[SF] [ZF] [0] [AF] [0] [PF] [1] [CF]
Now if you want to check the flags and take appropriate action in response to status of these flags, it is better to use "Conditional jump", like:
JNZ, JZ, : Jump if Zero Flags is Clear or Set respectively.
JNC, JC : Jump if Carry Flags is Clear or Set respectively.
JNO, JO : Jump if Overflow Flags is Clear or Set respectively.
JPE, JPO: Jump if Parity Flags is Even or Odd respectively.
And other conditional jumps exist, just check the 8086 instruction reference.
Another thing you should look for is the set of instructions that affect the Flags Register, not only the ADD instruction, many others affect this register, you will find it on the instruction reference manual.
Lastely, if you want to check the flags directly from the Flags Register, just:
PUSHF
POP AX; AX will contain the status of Flags register
Hope this was helpful to you.
Khilo - ALGERIA