9.匯編-JCC

9.匯編-JCC

之前可以修改EIP寄存器的指令
JMP,CALL,RETN

所有JCC指令的動作->根據(jù)標(biāo)志寄存器修改EIP的值

標(biāo)志寄存器 EFLAGS

image

CF(bit 0)[Carry flag] C位

若算術(shù)產(chǎn)生的結(jié)果在最高有效位(most-significant bit)發(fā)生進(jìn)位或者借位則將其置1 反之清零

這個標(biāo)志通常用來指示無符號證書運算的溢出狀態(tài)

寬度溢出位。只要容器內(nèi)放不下就會發(fā)生變化

MOV AL,0xFE
ADD AL,2            C => 1

MOV AL,0x7F
SBU AL,0xFF         C => 1

PF (bit 2) [parity flag] P位 奇偶校驗位

如果結(jié)果的最低有效字節(jié) 最后一個字節(jié)(least-significant byte)包含偶數(shù)個1位則該位置1,否則清零

利用PF可進(jìn)行奇偶校驗檢查

需要傳輸1100 1110,數(shù)據(jù)中含5個1,所以其奇校驗位位0,同時吧1100 1110傳輸給接收方,
接收方收到數(shù)據(jù)后再一次計算奇偶性,1100 1110中仍然含有5個1,所以接收方計算出的奇偶驗位還是0,與發(fā)送方一致,表示在此次傳輸過程中未發(fā)生錯誤。

例子:

MOV AL,0xCE 

AF (bit 4)[Auxiliary Carry Flag] 輔助進(jìn)位標(biāo)志器

如果算術(shù)操作在結(jié)果的第三位發(fā)生進(jìn)位或者借位則該標(biāo)志置1,否則清零

這個標(biāo)志在BCD(binary-code decimal) 算術(shù)運算中被使用

ZF(bit 5)[Zero Flag] 用的最多 劃重點。。

若結(jié)果為0則將其置1,反之清零。
經(jīng)常與CMP或者TEST等指令一起使用

例1: 判斷2個值是否相等

MOV EAX,100
MOV ECX,100
CMP EAX,ECX

(CMP指令相當(dāng)于SUB指令,但是相減的結(jié)果并不保存到第一個操作數(shù)中 只影響標(biāo)志寄存器)

例2:判斷某個值是否為0

AND EAX,EAX  0 ZF=1


TEST EAX,EAX
(TEST相當(dāng)于and,但是與運算的結(jié)果并不保存到第一個操作數(shù)中 只影響標(biāo)志寄存器)

SF(bit 7) [Sign Flag]

該標(biāo)志被設(shè)置為有符號整型的最高有效位
(0指示結(jié)果為正,反之則為負(fù))
意思其實就是,運算完之后看下符號位 是0(正)還是1(負(fù))

當(dāng)然如果是無符號數(shù)運算就不用看了

只看容器內(nèi)數(shù)字的最高位

例子

MOV AL,0x7F         MOV AL,0xFE
ADD AL,2            ADD AL,2

OF(bit 11)[OverFlow Flag]

溢出標(biāo)志OF用于反應(yīng)有符號數(shù)加減運算所得結(jié)果是否溢出
可以這樣理解:
* 如果是無符號數(shù)運算,是否溢出看CF位
* 如果是有符號數(shù)運算,是否溢出看OF位
兩個數(shù)做運算,運算完畢的結(jié)果跟運算前的數(shù)的最高位相同 OF為0
最高位不同 為1
例子:

MOV AL,0x7F
ADD AL,2

DF(bit 10)[Diretion Flag]

這個方向標(biāo)志控制字符串指令(`MOVS`,CMPS,SCAS,LODS以及`STOS`)。設(shè)置DF標(biāo)志是的串指令自動遞減(從高地址向低地址方向處理字符串),清楚該標(biāo)志則是的串指令自動遞增

STD以及CLD指令分別用戶設(shè)置以及清除DF標(biāo)志

JCC常見指令

image

有符號和無符號的區(qū)別:

CMP AL,CL
JG 0x12345678
JA 0x12345678
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容