標誌暫存器(flag)
1用來儲存相關指令的某些資料結果
2用來為cpu執行相關的指令提供行為依據
3用來控制cpu的相關工作方式
flag暫存器是按位起作用,每一位都有專門的含義
8086cpu
0(cf),2(ff),4(af),6(zf),7(sf),8(tf),9(if),10(df),11(of)都具有特殊含義,其他位沒有使用(造成影響的大多數是運算指令(邏輯/算數))
zf標誌
零標誌位,記錄相關指令執行後,其結果是否為0,如果結果為0,那麼zf=1;不為0,那麼zf=0
pf標誌
奇偶標誌位,記錄相關指令執行後,其結果的所有bit位中的1的個數是否為偶數,如果1的個數是偶數,pf=1,個數為奇數,pf=0
sf標誌(7)
符號標誌位,記錄相關指令執行後,其結果如果是負數sf=1,如果非負數,sf=0
計算中的乙個資料可以當作有符號數處理,也可以看作無符號數處理
00000001 無符號數1 有符號數+1/-1
如果我們把資料當作無符號運算,cf對我們沒有任何意義
cf標誌(0)
進製標誌位,在進行無符號數運算時,他記錄了運算結果的最高有效位向更高位的進製值,或者從更高位的借位值
加法運算(儲存資料溢位的最高有效位 /al=123 al=23 sf=1)
減法運算(借位進行運算)mov al,0 sub al-10 借位sf=1 al=16-10
mov al 98h
add al,al /98h+98h=130h al=30h cf位=1
of標誌(11)
在進行有符號運算的時候,如果結果超過了機器所表示的範圍,稱為溢位
溢位標誌位,of記錄了有符號運算的結果是否發生了溢位,如果溢位 of=1,如果沒有 of=0
adc指令
帶進製加法指令,利用cf上的值,進行進製運算
adc 操作物件1,操作物件2
操作物件1=操作物件1+操作物件2+cf
sbb指令
sbb 帶借位減法指令,利用cf上的值
sbb 操作物件1,操作物件2
操作物件1=操作物件2=操作物件-cf
cmp指令
cmp比較指令,相當於減法指令,只是不儲存結果
cmp指令執行後,對標誌暫存器產生影響,其他相關指令通過識別這些被影響的標誌暫存器得知比較結果
cmp 操作物件1,操作物件2
計算 操作物件1-操作物件2 根據計算結果對標誌暫存器進項設定
檢測比較結果的條件轉移指令
指令 je /等於則轉移 /zf=1 eqyal
jne /不等於則轉移 /zf=0 not equal
jb /低於則轉移 /cf=1 below
jnb /不低於則轉移 /cf=0 not below
ja /高於則轉移 /cf=0或zf=0 above
jna /不高於則轉移 /cf=1或zf=1 not above
df標誌(10)
方向標誌位,在處理串資料指令中 ,控制每次操作後si,di的增減
df=0 每次操作si di 遞增
df=1 每次操作si di 遞減
pushf和popf
pushf 將標誌暫存器的值壓入棧中
popf 從棧中彈出資料,送入標誌暫存器
組合語言 標誌暫存器
8086cpu的flag暫存器的結構如下所示。1,3行為標誌名,2,4行為位數。ofdf iftf 1514 1312 111098 sfzf afpfcf7 6543 210zf標誌 記錄相關指令執行後,其結果是否為0。pf標誌 記錄相關指令執行後,其結果的所有bit位中1的個數是否為偶數。of標...
組合語言 標誌暫存器
cpu內部的暫存器中,有一種特殊的暫存器 對於不同的處理機,個數和結構都可能不同 具有三種作用 1 用來儲存相關指令的某些執行結果 2 用來為cpu執行相關指令提供行為依據 3 用來控制cpu的相關工作方式。這種特殊的暫存器在8086cpu中,被稱為標誌暫存器 簡稱為flag 8086cpu的標誌暫...
標誌暫存器(flag)
8086cpu的標誌暫存器有16位,其中儲存的資訊通常被稱為程式狀態字。其他暫存器時用來存放資料的,整個暫存器具有乙個含義。flag暫存器是按位起作用的,它的每一位都有專門的含義,記錄特定的資訊。8086cpu的flag暫存器的結構 1514 1312 111098 7654 3210 ofdf i...