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

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

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

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

用自己的話(huà)總結(jié):條件跳轉(zhuǎn)指令是指jz,jg..等等指令,這些指令跳轉(zhuǎn)方式是根據(jù)標(biāo)志位的狀態(tài)進(jìn)行跳轉(zhuǎn),而設(shè)置這些標(biāo)志的常見(jiàn)指令為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 (符號(hào)標(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

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

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

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

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

CMP屬于算術(shù)運(yùn)算指令
CMP比較.(兩操作數(shù)作減法,僅修改標(biāo)志位,不回送結(jié)果). 
cmp實(shí)際上是只設(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邏輯與運(yùn)算結(jié)果為零,就把ZF(零標(biāo)志)置1;
cmp 算術(shù)減法運(yùn)算結(jié)果為零,就把ZF(零標(biāo)志)置1.

指 令

描 述

條 件

別 名

相 反 指 令

JC

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

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

JB,JNAE

JNC

JNC

如果進(jìn)位位沒(méi)有置位則跳轉(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)志沒(méi)有置位則跳轉(zhuǎn)

0標(biāo)志=0

JNE

JZ

指 令

描 述

條 件

別 名

相反指令

JS

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

符號(hào)標(biāo)志=1

JNS

JNS

如果符號(hào)位沒(méi)有被置位則跳轉(zhuǎn)

符號(hào)標(biāo)志=0

JS

JO

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

溢出標(biāo)志=1

JNO

JNO

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

溢出標(biāo)志=0

JO

JP

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

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

JPE

JNP

JPE

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

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

JP

JPO

JNP

如果奇偶校驗(yàn)位沒(méi)有被置位則跳轉(zhuǎn)

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

JPO

JP

JPO

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

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

JNP

JPE

使用無(wú)符號(hào)數(shù)比較的JCC指令

指 令

描 述

條 件

別 名

相反指令

JA

如果超過(guò)(>)則跳轉(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

如果超過(guò)或等于(>=)則跳轉(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

如果不超過(guò)或等于(不>=)則跳轉(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

如果不超過(guò)(不>)則跳轉(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

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

指 令

描 述

條 件

別 名

相反指令

JG

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

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

JNLE

JNG

JNLE

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

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

JG

JLE

JGE

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

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

JNL

JGE

JNL

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

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

JGE

JL

JL

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

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

JNGE

JNL

JNGE

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

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

JL

JGE

JLE

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

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

JNG

JNLE

JNG

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

符號(hào)標(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

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

相關(guān)文章

  • 匯編程序成績(jī)排序的實(shí)現(xiàn)

    匯編程序成績(jī)排序的實(shí)現(xiàn)

    這篇文章主要介紹了匯編程序成績(jī)排序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編語(yǔ)言lea指令使用方法解析

    匯編語(yǔ)言lea指令使用方法解析

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

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

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

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

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

    DEBUG命令詳解教程

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

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

    最近在學(xué)習(xí)匯編語(yǔ)言設(shè)計(jì),然后上網(wǎng)找關(guān)于匯編程序的編譯軟件,不負(fù)有心人,終于找到了我需要的軟件,值得慶幸
    2023-08-08
  • 匯編語(yǔ)言XOR指令:對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)異或操作(推薦)

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

    匯編語(yǔ)言(assembly language)是一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語(yǔ)言,亦稱(chēng)為符號(hào)語(yǔ)言。這篇文章主要介紹了匯編語(yǔ)言XOR指令:對(duì)兩個(gè)操作數(shù)進(jìn)行邏輯(按位)異或操作,需要的朋友可以參考下
    2020-01-01
  • 匯編跳轉(zhuǎn)指令使用總結(jié)

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

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

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

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

    什么是匯編語(yǔ)言

    匯編語(yǔ)言(assembly language)是一種用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語(yǔ)言,亦稱(chēng)為符號(hào)語(yǔ)言
    2020-01-01

最新評(píng)論

牟定县| 盐亭县| 沾益县| 永福县| 昭平县| 集贤县| 沂水县| 清涧县| 桑植县| 乐山市| 乐昌市| 安达市| 井陉县| 乃东县| 剑阁县| 惠来县| 仪陇县| 隆化县| 永靖县| 寿宁县| 岗巴县| 新余市| 左贡县| 德化县| 尼木县| 祁连县| 昌乐县| 崇左市| 阳高县| 石首市| 绥江县| 香河县| 高唐县| 长垣县| 万山特区| 江阴市| 新邵县| 潞西市| 淮滨县| 长阳| 察哈|