這裏講一個特殊的寄存器,flag內存
先看flag的16位顯示it
11.1 zfclass
指令執行後,結果0,ZF=1im
指令執行後,結果不爲0,ZF=0總結
11.2 pf數據
指令執行後,全部bit位中1的個數是否位偶數,若爲偶數,那麼pf=1img
若爲奇數,pf=0語言
11.3 sfdi
指令執行後,結果負,SF=1數字
指令執行後,結果不爲負,SF=0
11.4 cf
進位
若出現進位,那麼CF=1
沒有的話CF=0
11.5 of
溢出,
數字的溢出。
8位範圍是-128-127 若130就是溢出了
11.6 abc指令
abc a,b
a=a+b+CF
爲啥須要這個東西呢?
加法能夠分2步,
1 低位=低位加
2 高位=高位加+CF
把加法分步進行了
11.8 cmp指令
減法指令,可是不保存實際減法結果,就是用來影響flag的位
有4種狀況把,本身總結的
1 sf=1,of =0 就A<B
2 sf=1,of=1 正溢出出現的負值,就是a-b是一個大的正數,要是8位的話,就是大於127的
3 sf=0,of=1 負溢出纔會出現正值,那麼a-b就是一個負數,要是8位的話,就是小於128的
4 sf=0 sf=1 沒溢出,就很正常的比較大小
11.9 講了一些條件轉移指令
jczx 這種的
就和高級語言的if switch差很少把
11.10 串傳送
DF =0 每次操做後 si,di 遞增
DF=1 每次操做後si,di遞減
movsb一次傳一個內存單元,配合rep movsb使用
11.11 pushf popf
pushf 把標誌寄存器的值入棧
popf 從棧中彈出數據,送到棧中
這裏就講一個flag寄存器,每一個位都下設置0,1,起到不一樣的做用
EOF