最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

匯編跳轉指令使用總結

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

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

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

匯編標志位:

標志名                          標志 1              標志 0

OF (溢出標志)                 OV                  NV

DF  (方向標志)                                         UP                  DN

IF (中斷標志)                 DI                  EI

SF (符號標志位)               PL                  NG

ZF (零標志)                   NZ                  ZR

AF (輔助進位標志位)           NA                  AC

PF (奇偶標志)                 PO                  PE

CF (進位標志)                 NC                  CY

反匯編窗口,對應的標志位(雙擊后面的數字可改變其狀態(tài))

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

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

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

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

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

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

指 令

描 述

條 件

別 名

相 反 指 令

JC

如果進位位被置位則跳轉

進位標志=1

JB,JNAE

JNC

JNC

如果進位位沒有置位則跳轉

進位標志=0

JNB,JAE

JC

JZ

如果0標志被置位則跳轉

0標志=1

JE

JNZ

JNZ

如果0標志沒有置位則跳轉

0標志=0

JNE

JZ

指 令

描 述

條 件

別 名

相反指令

JS

如果符號位被置位則跳轉

符號標志=1

JNS

JNS

如果符號位沒有被置位則跳轉

符號標志=0

JS

JO

如果溢出標志置位則跳轉

溢出標志=1

JNO

JNO

如果溢出標志沒有置位則跳轉

溢出標志=0

JO

JP

如果奇偶校驗位被置位則跳轉

奇偶校驗標志=1

JPE

JNP

JPE

如果奇偶校驗位為偶校驗則跳轉

奇偶校驗標志=1

JP

JPO

JNP

如果奇偶校驗位沒有被置位則跳轉

奇偶校驗標志=0

JPO

JP

JPO

如果奇偶校驗位為奇校驗則跳轉

奇偶校驗標志=0

JNP

JPE

使用無符號數比較的JCC指令

指 令

描 述

條 件

別 名

相反指令

JA

如果超過(>)則跳轉

進位標志=0,0標志=0

JNBE

JNA

JNBE

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

進位標志=0,0標志=0

JA

JBE

JAE

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

進位標志=0

JNC,JNB

JNAE

JNB

如果不低于則跳轉(不 <)

進位標志=0

JNC,JAE

JB

JB

如果低于(<)則跳轉

進位標志=1

JC,JNAE

JNB

JNAE

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

進位標志=1

JC,JB

JAE

JBE

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

進位標志=1或0標志=1

JNA

JNBE

JNA

如果不超過(不>)則跳轉

進位標志=1或0標志=1

JBE

JA

JE

如果相等(=)則跳轉

0標志=1

JZ

JNE

JNE

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

0標志=0

JNZ

JE

使用有符號數比較的JCC指令

指 令

描 述

條 件

別 名

相反指令

JG

如果大于(>)則跳轉

符號標志=溢出標志或0標志=0

JNLE

JNG

JNLE

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

符號標志=溢出標志或0標志=0

JG

JLE

JGE

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

符號標志=溢出標志

JNL

JGE

JNL

如果不小于(不<)則跳轉

符號標志=溢出標志

JGE

JL

JL

如果小于(<)則跳轉

符號標志<>溢出標志

JNGE

JNL

JNGE

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

符號標志<>溢出標志

JL

JGE

JLE

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

符號標志<>溢出標志或0標志=1

JNG

JNLE

JNG

如果不大于(不>)則跳轉

符號標志<>溢出標志或0標志=1

JLE

JG

JE

如果等于(=)則跳轉

0標志=1

JZ

JNE

JNE

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

0標志=0

JNZ

JE

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 匯編程序成績排序的實現

    匯編程序成績排序的實現

    這篇文章主要介紹了匯編程序成績排序的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 匯編語言lea指令使用方法解析

    匯編語言lea指令使用方法解析

    這篇文章主要介紹了匯編語言lea指令使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • 一文秒懂匯編中的循環(huán)問題

    一文秒懂匯編中的循環(huán)問題

    這篇文章主要介紹了一文秒懂匯編中的循環(huán)問題,通過每一行指令詳細分析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明

    匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明

    這篇文章主要介紹了匯編指令-狀態(tài)寄存器、cmp、test、jz等指令詳細說明,需要的朋友可以參考下
    2020-01-01
  • DEBUG命令詳解教程

    DEBUG命令詳解教程

    DEBUG命令詳解教程...
    2007-03-03
  • 匯編程序設計之DOSBox模擬環(huán)境配置

    匯編程序設計之DOSBox模擬環(huán)境配置

    最近在學習匯編語言設計,然后上網找關于匯編程序的編譯軟件,不負有心人,終于找到了我需要的軟件,值得慶幸
    2023-08-08
  • 匯編語言XOR指令:對兩個操作數進行邏輯(按位)異或操作(推薦)

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

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

    匯編跳轉指令使用總結

    這篇文章主要介紹了匯編跳轉指令使用總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 從Go匯編角度解讀for循環(huán)的問題

    從Go匯編角度解讀for循環(huán)的問題

    Go常用的遍歷方式有兩種:for和for-range。這篇文章主要介紹了從Go匯編角度解讀for循環(huán)的兩個疑點,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 什么是匯編語言

    什么是匯編語言

    匯編語言(assembly language)是一種用于電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言
    2020-01-01

最新評論

裕民县| 磐石市| 潞西市| 广平县| 浦北县| 额济纳旗| 东海县| 洪湖市| 朝阳市| 丰顺县| 曲阳县| 潼关县| 石泉县| 宝坻区| 长泰县| 湖州市| 长岭县| 潢川县| 金川县| 子洲县| 迁西县| 丹寨县| 龙南县| 莱芜市| 白水县| 新郑市| 三江| 明光市| 南康市| 武宁县| 新晃| 冕宁县| 泰兴市| 洱源县| 思南县| 沂水县| 西盟| 墨玉县| 雷州市| 大悟县| 阜宁县|