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

匯編語言:比較指令、跳轉(zhuǎn)指令、JCC的使用

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

一、JMP 指令:修改EIP 當(dāng)前運(yùn)行的下一條指令

       JMP 寄存器/立即數(shù)
       目標(biāo)類似:  mov  EIP,寄存器/立即數(shù)

       CALL指令:  調(diào)用函數(shù)  CALL 地址A/寄存器
       等價(jià): 
               PUSH 地址B           ;保存call的下一條指令地址,壓棧,作為返回值,
               MOV EIP,地址A/寄存器            ; 將函數(shù)首地址作為EIP

       RET指令:
       等價(jià):LEA ESP,[ESP+4]       ; esp = esp + 4
                  MOV EIP,[ESP-4]     ;和 CALL相反,將CALL 指令的下一條指令地址賦值給EIP;

二、比較指令

       CMP  R/M,R/M/IMM
       該指令是比較兩個(gè)操作數(shù),實(shí)際上,它相當(dāng)于SUB指令,但是相減的結(jié)果并不保存到第一個(gè)操作數(shù)中。只是根據(jù)相減的結(jié)果來改變零標(biāo)志位的,當(dāng)兩個(gè)操作數(shù)相等的時(shí)候,零標(biāo)志位置1。
       
       TEST指令:指令格式:TEST  R/M,R/M/IMM
        該指令在一定程序上和CMP指令是類似的(類似and),兩個(gè)數(shù)值進(jìn)行與操作,結(jié)果不保存,但是會(huì)改變相應(yīng)標(biāo)志位.
       常見用法:用這個(gè)指令,可以確定某寄存器是否等于0。(觀察ZF)

三、JCC指令  16種跳轉(zhuǎn)

       比較指令之后,一般都會(huì)有分支判斷。
       根據(jù)標(biāo)志位進(jìn)行判斷,下一步的分支。

JE, JZ 結(jié)果為零則跳轉(zhuǎn)(相等時(shí)跳轉(zhuǎn)) ZF=1
JNE, JNZ 結(jié)果不為零則跳轉(zhuǎn)(不相等時(shí)跳轉(zhuǎn)) ZF=0
JS 結(jié)果為負(fù)則跳轉(zhuǎn) SF=1
JNS 結(jié)果為非負(fù)則跳轉(zhuǎn) SF=0
JP, JPE 結(jié)果中1的個(gè)數(shù)為偶數(shù)則跳轉(zhuǎn) PF=1
JNP, JPO 結(jié)果中1的個(gè)數(shù)為偶數(shù)則跳轉(zhuǎn) PF=0
JO 結(jié)果溢出了則跳轉(zhuǎn) OF=1
JNO 結(jié)果沒有溢出則跳轉(zhuǎn) OF=0
JB, JNAE 小于則跳轉(zhuǎn) (無符號(hào)數(shù)) CF=1
JNB, JAE 大于等于則跳轉(zhuǎn) (無符號(hào)數(shù)) CF=0
JBE, JNA 小于等于則跳轉(zhuǎn) (無符號(hào)數(shù)) CF=1 or ZF=1
JNBE, JA 大于則跳轉(zhuǎn)(無符號(hào)數(shù)) CF=0 and ZF=0
JL, JNGE 小于則跳轉(zhuǎn) (有符號(hào)數(shù)) SF≠ OF
JNL, JGE 大于等于則跳轉(zhuǎn) (有符號(hào)數(shù)) SF=OF
JLE, JNG 小于等于則跳轉(zhuǎn) (有符號(hào)數(shù)) ZF=1 or SF≠ OF
JNLE, JG 大于則跳轉(zhuǎn)(有符號(hào)數(shù)) ZF=0 and SF=OF

四、思考

1、CALL執(zhí)行時(shí)堆棧有什么變化?EIP有變化嗎?
      Call執(zhí)行時(shí),保存了cal函數(shù)首地址到EIP,同時(shí)將Call函數(shù)的首地址壓棧; 
2、RET執(zhí)行時(shí)堆棧有什么變化?EIP有變化嗎?
      和Call的過程相反,將前面Call的下一條指令地址,從堆棧中取出來作為EIP。
3、使用匯編指令修改標(biāo)志寄存器中的某個(gè)位的值,實(shí)現(xiàn)JCC的十六種跳轉(zhuǎn).
    不允許在OD中通過雙擊的形式修改標(biāo)志寄存器.
    要通過匯編指令的執(zhí)行去影響標(biāo)志位,能用CMP和TEST實(shí)現(xiàn)的優(yōu)先考慮.
     見上面的表格; 

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

相關(guān)文章

  • 匯編語言 寄存器內(nèi)存訪問原理解析

    匯編語言 寄存器內(nèi)存訪問原理解析

    這篇文章主要介紹了匯編語言 寄存器內(nèi)存訪問原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 匯編語言乘指令 MUL、IMUL的具體使用

    匯編語言乘指令 MUL、IMUL的具體使用

    這篇文章主要介紹了匯編語言乘指令 MUL、IMUL的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 匯編實(shí)現(xiàn)的memcpy和memset的方法

    匯編實(shí)現(xiàn)的memcpy和memset的方法

    這篇文章主要介紹了匯編實(shí)現(xiàn)的memcpy和memset的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 淺析ARMv8匯編指令adrp和adr

    淺析ARMv8匯編指令adrp和adr

    這篇文章給大家介紹ARMv8匯編指令adrp和adr的相關(guān)知識(shí),暫時(shí)不介紹alpha生成的指令,因此先來主要分析一下,arm架構(gòu)之所以少生成匯編指令的原因——adrp指令,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • asm基礎(chǔ)——匯編指令之in/out指令

    asm基礎(chǔ)——匯編指令之in/out指令

    這篇文章主要介紹了asm基礎(chǔ)——匯編指令之in/out指令,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • DEBUG命令詳解教程

    DEBUG命令詳解教程

    DEBUG命令詳解教程...
    2007-03-03
  • 匯編語言段定義的使用

    匯編語言段定義的使用

    匯編語言源程序的基本結(jié)構(gòu)是段,一個(gè)匯編語言源程序由若干個(gè)代碼段,本文主要介紹了匯編語言段定義的使用,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • C 表達(dá)式中的匯編指令

    C 表達(dá)式中的匯編指令

    這篇文章主要介紹了C 表達(dá)式中的匯編指令,需要的朋友可以參考下
    2020-01-01
  • 匯編用串檢測scasb尋找數(shù)的位置實(shí)現(xiàn)

    匯編用串檢測scasb尋找數(shù)的位置實(shí)現(xiàn)

    這篇文章主要介紹了匯編用串檢測scasb尋找數(shù)的位置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 16位匯編語言寄存器及指令整理(小結(jié))

    16位匯編語言寄存器及指令整理(小結(jié))

    這篇文章主要介紹了16位匯編語言寄存器及指令整理(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論

阜新市| 射阳县| 天水市| 兴隆县| 大新县| 海盐县| 贵港市| 潼关县| 凌海市| 武义县| 万载县| 刚察县| 门头沟区| 阳山县| 德钦县| 博罗县| 镇远县| 嘉义市| 祁连县| 平罗县| 周至县| 馆陶县| 陕西省| 锦屏县| 新乐市| 蓬莱市| 周至县| 和硕县| 汽车| 天镇县| 阜康市| 云安县| 台安县| 札达县| 花垣县| 连云港市| 长泰县| 武强县| 湘乡市| 高安市| 花莲县|