彙編系列22 標誌暫存器與JCC指令

2022-07-12 03:12:09 字數 3028 閱讀 9650

1、標誌暫存器:eflags

0:cf---進製標誌--carry flag

2:pf---奇偶標誌

4:af---輔助進製標誌

6:zf---零標誌

7:sf---符號標誌

8:tf---單步標誌--暫時用不到,學習如何實現偵錯程式時學。

9:if---中斷使能標誌--暫時用不到,學中斷門的時候再學習。

10:df---方向標誌

11:of---溢位標誌

jcc指令--可修改eip暫存器的值。

前面學習,修改eip的指令有,jmp,call,ret。

jcc指令修改eip不像jmp是無條件修改eip的,而是根據標誌暫存器裡面的值決定的。

若想很好的理解jcc指令,要理解標誌暫存器。

只統計最後乙個位元組1的個數,為偶數則p位為1,否則為0。

彙編 jcc指令表

jcc指條件跳轉指令,cc就是指條件碼。

jcc指令

中文含義

英文含義

檢查符號位

典型c應用

jz/je

若為0則跳轉;若相等則跳轉

jump if zero;jump if equal

zf=1

if (i == j);if (i == 0);

jnz/jne

若不為0則跳轉;若不相等則跳轉

jump if not zero;jump if not equal

zf=0

if (i != j);if (i != 0);

js若為負則跳轉

jump if sign

sf=1

if (i < 0);

jns若為正則跳轉

jump if not sign

sf=0

if (i > 0);

jp/jpe

若1出現次數為偶數則跳轉

jump if parity (even)

pf=1

(null)

jnp/jpo

若1出現次數為奇數則跳轉

jump if not parity (odd)

pf=0

(null)

jo若溢位則跳轉

jump if overflow

of=1

(null)

jno若無溢位則跳轉

jump if not overflow

of=0

(null)

jc/jb/jnae

若進製則跳轉;若低於則跳轉;若不高於等於則跳轉

jump if carry;jump if below;jump if not above equal

cf=1

if (i < j);

jnc/jnb/jae

若無進製則跳轉;若不低於則跳轉;若高於等於則跳轉;

jump if not carry;jump if not below;jump if above equal

cf=0

if (i >= j);

jbe/jna

若低於等於則跳轉;若不高於則跳轉

jump if below equal;jump if not above

zf=1或cf=1

if (i <= j);

jnbe/ja

若不低於等於則跳轉;若高於則跳轉

jump if not below equal;jump if above

zf=0或cf=0

if (i > j);

jl/jnge

若小於則跳轉;若不大於等於則跳轉

jump if less;jump if not greater equal

sf != of

if (si < sj);

jnl/jge

若不小於則跳轉;若大於等於則跳轉;

jump if not less;jump if greater equal

sf = of

if (si >= sj);

jle/jng

若小於等於則跳轉;若不大於則跳轉

jump if less equal;jump if not greater

zf != of 或 zf=1

if (si <= sj);

jnle/jg

若不小於等於則跳轉;若大於則跳轉

jump if not less equal;jump if greater

sf=0f 且 zf=0

if(si>sj)

參考:

彙編 標誌暫存器

我們已經接觸過像ax bx cx si di ss cs等暫存器了,但是在8086cpu中有乙個比較特殊的暫存器 標誌暫存器 flag 2.基本介紹 與其他暫存器不同的是,標誌暫存器中儲存的不是資料,而是標誌狀態字 psw 而且其他暫存器都是作為乙個整體在使用,我們常說某某暫存器中放著某個資料,但是...

8089彙編 標誌暫存器

在8086cpu的指令集中,有的指令的執行是影響標誌暫存器的,比如 add sub mul div inc or and等,它們大都是運算指令,進行邏輯或算術運算 有的指令的執行對標誌暫存器沒有影響,比如 mov push pop等,它們大都是傳送指令。使用一條指令的時候,要注意這條指令的全部功能,...

標誌暫存器df 標誌暫存器

cpu內部的暫存器中,有一種特殊的暫存器具有以下三種作用。用來儲存相關指令的某些執行結果 用來為cpu執行相關指令提供行為依據 用來控制cpu的相關工作方式 這種特殊的暫存器在8086cpu種,被稱為標誌暫存器 flag 8086cpu的標誌暫存器有16位,其中儲存的資訊通常被稱為程式狀態字 psw...