欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

匯編跳轉(zhuǎn)指令使用總結(jié)

 更新時間:2020年01月24日 08:50:14   作者:H-KING  
這篇文章主要介紹了匯編跳轉(zhuǎn)指令使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

雖然jmp指令提供了控制轉(zhuǎn)移,但是它不允許進(jìn)行任何復(fù)雜的判斷。80x86條件跳轉(zhuǎn)指令提供了這種判斷。條件跳轉(zhuǎn)指令是創(chuàng)建循環(huán)和實現(xiàn)其他條件執(zhí)行語句。條件跳轉(zhuǎn)指令檢查一個或多個標(biāo)志位,判斷它們是否匹配某個特殊條件(就像setcc指令):如果標(biāo)志匹配成功,該指令就將控制轉(zhuǎn)移到目標(biāo)位置;如果匹配失敗,CPU忽略該條件跳轉(zhuǎn)指令而繼續(xù)執(zhí)行下一條指令。條件跳轉(zhuǎn)指令有一個限制:目標(biāo)標(biāo)號的位置必須在跳轉(zhuǎn)指令本身附近32768字節(jié)范圍內(nèi),這通常對應(yīng)著8000~32000條機(jī)器指令。一般情況下不會超過這種限制。

用自己的話總結(jié):條件跳轉(zhuǎn)指令是指jz,jg..等等指令,這些指令跳轉(zhuǎn)方式是根據(jù)標(biāo)志位的狀態(tài)進(jìn)行跳轉(zhuǎn),而設(shè)置這些標(biāo)志的常見指令為cmp和test指令,所以他們經(jīng)常搭配使用(應(yīng)該是必須的)。即跳轉(zhuǎn)指令前一行要嗎有cmp指令要嗎有test指令。

匯編標(biāo)志位:

標(biāo)志名                          標(biāo)志 1              標(biāo)志 0

OF (溢出標(biāo)志)                 OV                  NV

DF  (方向標(biāo)志)                                         UP                  DN

IF (中斷標(biāo)志)                 DI                  EI

SF (符號標(biāo)志位)               PL                  NG

ZF (零標(biāo)志)                   NZ                  ZR

AF (輔助進(jìn)位標(biāo)志位)           NA                  AC

PF (奇偶標(biāo)志)                 PO                  PE

CF (進(jìn)位標(biāo)志)                 NC                  CY

反匯編窗口,對應(yīng)的標(biāo)志位(雙擊后面的數(shù)字可改變其狀態(tài))

Test和cmp指令的區(qū)別

test屬于邏輯運算指令
Test對兩個參數(shù)(目標(biāo),源)執(zhí)行AND邏輯操作,并根據(jù)結(jié)果設(shè)置標(biāo)志寄存器,結(jié)果本身不會保存。
舉例:
Test的一個非常普遍的用法是用來測試一方寄存器是否為空:
test ecx, ecx
jz somewhere
如果ecx為零,設(shè)置ZF零標(biāo)志為1,Jz跳轉(zhuǎn)

--------------------------------------------

CMP屬于算術(shù)運算指令
CMP比較.(兩操作數(shù)作減法,僅修改標(biāo)志位,不回送結(jié)果). 
cmp實際上是只設(shè)置標(biāo)志不保存結(jié)構(gòu)的減法,并設(shè)置Z-flag(零標(biāo)志).
舉例:
Cmp eax, 2;       如果eax-2=0即eax=2就設(shè)置零標(biāo)志為1
Jz ****;          如果設(shè)置了零標(biāo)志就跳轉(zhuǎn)

============================================

得出的結(jié)論
test邏輯與運算結(jié)果為零,就把ZF(零標(biāo)志)置1;
cmp 算術(shù)減法運算結(jié)果為零,就把ZF(零標(biāo)志)置1.

指 令

描 述

條 件

別 名

相 反 指 令

JC

如果進(jìn)位位被置位則跳轉(zhuǎn)

進(jìn)位標(biāo)志=1

JB,JNAE

JNC

JNC

如果進(jìn)位位沒有置位則跳轉(zhuǎn)

進(jìn)位標(biāo)志=0

JNB,JAE

JC

JZ

如果0標(biāo)志被置位則跳轉(zhuǎn)

0標(biāo)志=1

JE

JNZ

JNZ

如果0標(biāo)志沒有置位則跳轉(zhuǎn)

0標(biāo)志=0

JNE

JZ

指 令

描 述

條 件

別 名

相反指令

JS

如果符號位被置位則跳轉(zhuǎn)

符號標(biāo)志=1

JNS

JNS

如果符號位沒有被置位則跳轉(zhuǎn)

符號標(biāo)志=0

JS

JO

如果溢出標(biāo)志置位則跳轉(zhuǎn)

溢出標(biāo)志=1

JNO

JNO

如果溢出標(biāo)志沒有置位則跳轉(zhuǎn)

溢出標(biāo)志=0

JO

JP

如果奇偶校驗位被置位則跳轉(zhuǎn)

奇偶校驗標(biāo)志=1

JPE

JNP

JPE

如果奇偶校驗位為偶校驗則跳轉(zhuǎn)

奇偶校驗標(biāo)志=1

JP

JPO

JNP

如果奇偶校驗位沒有被置位則跳轉(zhuǎn)

奇偶校驗標(biāo)志=0

JPO

JP

JPO

如果奇偶校驗位為奇校驗則跳轉(zhuǎn)

奇偶校驗標(biāo)志=0

JNP

JPE

使用無符號數(shù)比較的JCC指令

指 令

描 述

條 件

別 名

相反指令

JA

如果超過(>)則跳轉(zhuǎn)

進(jìn)位標(biāo)志=0,0標(biāo)志=0

JNBE

JNA

JNBE

如果不低于或等于(不 <=)則跳轉(zhuǎn)

進(jìn)位標(biāo)志=0,0標(biāo)志=0

JA

JBE

JAE

如果超過或等于(>=)則跳轉(zhuǎn)

進(jìn)位標(biāo)志=0

JNC,JNB

JNAE

JNB

如果不低于則跳轉(zhuǎn)(不 <)

進(jìn)位標(biāo)志=0

JNC,JAE

JB

JB

如果低于(<)則跳轉(zhuǎn)

進(jìn)位標(biāo)志=1

JC,JNAE

JNB

JNAE

如果不超過或等于(不>=)則跳轉(zhuǎn)

進(jìn)位標(biāo)志=1

JC,JB

JAE

JBE

如果低于或等于(<=)則跳轉(zhuǎn)

進(jìn)位標(biāo)志=1或0標(biāo)志=1

JNA

JNBE

JNA

如果不超過(不>)則跳轉(zhuǎn)

進(jìn)位標(biāo)志=1或0標(biāo)志=1

JBE

JA

JE

如果相等(=)則跳轉(zhuǎn)

0標(biāo)志=1

JZ

JNE

JNE

如果不相等(<>)則跳轉(zhuǎn)

0標(biāo)志=0

JNZ

JE

使用有符號數(shù)比較的JCC指令

指 令

描 述

條 件

別 名

相反指令

JG

如果大于(>)則跳轉(zhuǎn)

符號標(biāo)志=溢出標(biāo)志或0標(biāo)志=0

JNLE

JNG

JNLE

如果小于或等于(<=)則跳轉(zhuǎn)

符號標(biāo)志=溢出標(biāo)志或0標(biāo)志=0

JG

JLE

JGE

如果大于或等于(>=)則跳轉(zhuǎn)

符號標(biāo)志=溢出標(biāo)志

JNL

JGE

JNL

如果不小于(不<)則跳轉(zhuǎn)

符號標(biāo)志=溢出標(biāo)志

JGE

JL

JL

如果小于(<)則跳轉(zhuǎn)

符號標(biāo)志<>溢出標(biāo)志

JNGE

JNL

JNGE

如果大于或等于(>=)跳轉(zhuǎn)

符號標(biāo)志<>溢出標(biāo)志

JL

JGE

JLE

如果小于或等于(<=)跳轉(zhuǎn)

符號標(biāo)志<>溢出標(biāo)志或0標(biāo)志=1

JNG

JNLE

JNG

如果不大于(不>)則跳轉(zhuǎn)

符號標(biāo)志<>溢出標(biāo)志或0標(biāo)志=1

JLE

JG

JE

如果等于(=)則跳轉(zhuǎn)

0標(biāo)志=1

JZ

JNE

JNE

如果不等于(<>)則跳轉(zhuǎn)

0標(biāo)志=0

JNZ

JE

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 匯編語言中cmp指令用法筆記與總結(jié)

    匯編語言中cmp指令用法筆記與總結(jié)

    這篇文章主要介紹了匯編語言中cmp指令用法,結(jié)合實例形式總結(jié)分析了匯編語言cmp指令基本功能、使用方法及操作注意事項,需要的朋友可以參考下
    2020-01-01
  • 匯編實現(xiàn)冒泡排序的方法示例

    匯編實現(xiàn)冒泡排序的方法示例

    這篇文章主要介紹了匯編實現(xiàn)冒泡排序的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語言有關(guān)在屏幕區(qū)顯示字符的四種方法(推薦)

    匯編語言有關(guān)在屏幕區(qū)顯示字符的四種方法(推薦)

    這篇文章主要介紹了匯編語言有關(guān)在屏幕區(qū)顯示字符的四種方法(推薦),每種方法給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 匯編語言入門教程阮一峰版

    匯編語言入門教程阮一峰版

    匯編語言是一種最低級、最古老、不具有移植性的編程語言,它能夠直接訪問計算機(jī)硬件,所以執(zhí)行效率極高,占用資源極少,一般用于嵌入式設(shè)備、驅(qū)動程序、實時應(yīng)用、核心算法等
    2020-01-01
  • 匯編語言XOR指令:對兩個操作數(shù)進(jìn)行邏輯(按位)異或操作(推薦)

    匯編語言XOR指令:對兩個操作數(shù)進(jìn)行邏輯(按位)異或操作(推薦)

    匯編語言(assembly language)是一種用于電子計算機(jī)、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。這篇文章主要介紹了匯編語言XOR指令:對兩個操作數(shù)進(jìn)行邏輯(按位)異或操作,需要的朋友可以參考下
    2020-01-01
  • 匯編 JCC指令表與筆記

    匯編 JCC指令表與筆記

    這篇文章主要介紹了匯編 JCC指令表與筆記,需要的朋友可以參考下
    2020-01-01
  • UEFI開發(fā)實戰(zhàn)用戶交互界面基礎(chǔ)說明

    UEFI開發(fā)實戰(zhàn)用戶交互界面基礎(chǔ)說明

    這篇文章主要為大家介紹了UEFI開發(fā)實戰(zhàn)用戶交互界面的基礎(chǔ)說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 匯編實現(xiàn)直接插入排序的方法示例

    匯編實現(xiàn)直接插入排序的方法示例

    這篇文章主要介紹了匯編實現(xiàn)直接插入排序的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語言軟件延時1s的實現(xiàn)方法

    匯編語言軟件延時1s的實現(xiàn)方法

    這篇文章主要介紹了匯編語言軟件延時1s的實現(xiàn)方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 利用DOSBox運行匯編的詳細(xì)步驟

    利用DOSBox運行匯編的詳細(xì)步驟

    本文分步驟給大家介紹了利用DOSBox運行匯編,起初是利用VS2017進(jìn)行配置,但后面運行好像有些問題,就想到用DOSBox,本文分步驟給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2022-03-03

最新評論