天天看點

一個奇葩的标志寄存器 flag寄存器

注意:

mov,push,pop等傳送指令,執行結果對标志寄存器并無影響!

一個奇葩的标志寄存器 flag寄存器

ZF标志:結果為0,則ZF為1;不為0,ZF為0;(zero flag)

PF标志:如果1的個數為偶數,pf=1;如果為奇數,那麼pf=0;

SF标志:結果為負,則SF為1;結果非負數,SF為0

CF标志:是對無符号數運算有意義的标志位【看有無進位】

OF标志:對有符号數運算有意義的标志位【看有無溢出】

監測點11.1:

sub al,al      al=0h        ZF=1        PF=1        SF=0        

al為0h,結果為0是以ZF為1代表真,有0個偶數是以PF為1,結果為非負,是以SF為0。當我們把資料當做無符号數來計算,SF位的值沒有意義。

mov al,1      al=1h        ZF=1        PF=1        SF=0       

 mov是傳送指令對标志寄存器沒有影響,标志寄存器不發生改變。

push ax       ax=1h        ZF=1        PF=1        SF=0      

push是傳送指令對标志寄存器沒有影響,标志寄存器不發生改變。

pop bx        bx=1h        ZF=1        PF=1        SF=0      

pop是傳送指令對标志寄存器沒有影響,标志寄存器不發生改變。

add al,bl     al=2h        ZF=0        PF=0        SF=0      

2h的二進制為0010 ,結果不為0則ZF為0,奇數個1則PF為0,SF為0

add al,10     al=12h       ZF=0        PF=1        SF=0    

監測點11.2