x86彙編 條件跳轉

2022-07-24 18:33:09 字數 2701 閱讀 4014

條件跳轉表

直接轉移指令

指令格式

機器碼

測試標誌

條件說明

符號

jo       opr

70of=1

結果有溢位

jno      opr

71of=0

結果無溢位

jc       opr

72cf=1

小於<

jnc      opr

73cf=0

大於或等於

>=

jz/je    opr

74zf=1

結果為0

==jnz/jne  opr

75zf=0

結果非0

!=js       opr

78sf=1

結果為負

<0

jns      opr

79sf=0

結果為正

>0

jp/jpe   opr

7apf=1

結果中1的個數為偶數

jnp/jpo  opr

7bpf=0

結果中1的個數為奇數

間接轉移指令-無符號數

指令格式

機器碼

測試標誌

條件說明

符號

jb/jnae  opr

72cf=1

低於/不高於且不等於

<

jnb/jae  opr

73cf=0

不低於/高於或等於

>=

jbe/jna  opr

76(cf=1)|(zf=1)

低於或等於/不高於

<=

jnbe/ja  opr

77(cf=0)&(zf=0)

不低於且不等於/高於

>

間接轉移指令-有符號數

指令格式

機器碼

測試標誌

條件說明

符號

jl/jnge  opr

7c(sf^of)=1

小於/不大於且不等於

<

jnl/jge  opr

7d(sf^of)=0

不小於/大於或等於

>=

jle/jng  opr

7e(sf^of)=1|(zf=1)

小於或等於/不大於

<=

jnle/jg  opr

7f(sf^of)=0&(zf=0)

不小於且不等於/大於

>

理解方法:

n: not

e: equal

a: above

b: below

l: less    (little的比較級)

g: greater (great的比較級)

less than   : 小於

greater than: 大於

(sf^of)=1 --> sf=0,of=1 --> a < b

sf=1,of=0 --> a < b

(sf^of)=0 --> sf=1,of=1 --> a >  b

sf=0,of=0 --> a >= b                          

條件跳轉指令是根據標誌暫存器中的相關標誌位的值來進行跳轉的,因此,條件跳轉指令只能與那些能夠影響標誌暫存器的相關標誌位的指令配合使用;

能夠直接影響標誌暫存器的相關標誌位的指令有:

1、算術運算指令 : add、sub、adc、sbb、inc、dec、neg、mul、div、imul、idiv,等等;

2、按位邏輯運算 : and、or、xor、not,等等;

3、比較運算指令 : cmp、test;

4、移位操作指令 : shr、shl、sar、sal、ror、rol、rcr、rcl;

5、bcd數調整指令: aaa、aas、daa、das、aam、aad;

6、標誌處理指令 : clc、stc、cmc、cld、std、cli、sti;

能夠間接影響標誌暫存器的相關標誌位的指令序列有:

pushf --> pop eax --> modify eax --> push eax --> popf

即:pushf

pop eax

modify eax

push eax

popf

jbe opr

這樣的一系列操作之後,條件轉移指令"jbe opr"也可以根據標誌暫存器的相關標誌位進行轉移;

Linux C語言內聯彙編 條件跳轉

void jump 當sum的約束條件是 r 時,內聯彙編中應該初始化一下,movl 0,0 相當於初始化sum的中轉暫存器 比如下面,編譯器選擇 edx來暫存sum,如果不清零操作,其中的值是不確定的 再看看生成的.s檔案 subq 16,rsp movl 10,4 rbp movl 0,8 rb...

170824 彙編 x86基礎

a.1625 5 王子昂 總結 2017年8月24日 連續第325天總結 b.逆向知識 資料移動分為5種方式 立即數到暫存器 立即數到記憶體 暫存器到暫存器 暫存器到記憶體或記憶體到暫存器 記憶體到記憶體 前4種是所有現代體系都支援的,第五種是x86獨有的,可以通過inc add來直接操作記憶體 另...

X86彙編指令詳解

x86彙編基本分為七大體系 分別是 1 資料傳送指令 2 算術運算指令 3 邏輯運算指令 4 串操作指令 5 控制轉移指令 6 處理器控制指令 7 保護方式指令 先介紹資料傳送指令集 1 資料傳送指令 1.mov 格式 mov destination,source 功能 將s ource中的資料傳送...