Quick question, why is the SF being set if the number is positive?
mov al,124
add al,5 ;CF=0,SF=1,ZF=0,OF=1
;Carry flag - not set (no carry out of the most significant (leftmost) bit)
;Sign flag - set (???)
;Zero flag - not set (destination not zero),
;overflow flag - set (value is not in the range of signed values for a byte)
call dumpRegs