彙編語言(王爽) 第11章 標誌寄存器

這裏講一個特殊的寄存器,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

相關文章
相關標籤/搜索