Check this code out
include 'win32ax.inc'
;.data
.code
start:
mov al,00000001b
add al,00000001b ;even =2 pf = 0
add al,00000001b ;odd =3 pf = 1
add al,00000001b ;even =4 pf = 0
sub al,00000001b ;odd =3 pf = 1
sub al,00000001b ;even =2 pf = 0
sub al,00000001b ;odd =1 pf = 0
sub al,00000001b ;even =0 pf = 1
.end start
The last two subtraction instructions should of set PF=1, then PF=0, so why doesn't it?
Also i'm using FASM, i'm debugging with ollydbg debugger.