日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

30336控制转移指令

發布時間:2024/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 30336控制转移指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.控制轉移指令

? 無條件轉移指令
JMP
? 條件轉移指令
JZ / JNZ 、 JE / JNE、 JS / JNS、 JO / JNO、
JP / JNP、 JB / JNB、 JL / JNL、 JBE / JNBE、
JLE / JNLE、 JCXZ
? 循環指令
LOOP、LOOPZ / LOOPE、LOOPNZ / LOOPNE
? 子程序調用和返回指令
CALL、RET
? 中斷與中斷返回指令
INT、INTO、IRET

?

?2.無條件轉移指令

段內直接短轉移:JMP SHORT OPR
  執行操作:(IP) ← (IP) + 8位位移量

?

段內直接近轉移:JMP NEAR PTR OPR
  執行操作:(IP) ← (IP) + 16位位移量

?

段內間接轉移: JMP WORD PTR OPR
  執行操作: (IP) ← (EA)

?

段間直接遠轉移:JMP FAR PTR OPR
  執行操作:(IP) ← OPR 的段內偏移地址
       (CS) ← OPR 所在段的段地址

?

段間間接轉移: JMP DWORD PTR OPR
  執行操作: (IP) ← (EA)
        (CS) ← (EA+2)

?

3.條件轉移指令

注意:只能使用段內直接尋址的8 位位移量

3.1根據單個條件標志的設置情況轉移

? ? ?格式測試條件?
?JZ(JE)? OPRZF=1

jump if zero,or equal

結果為零(或相等)則轉移

JNZ(JNE)? OPRZF=0
?JS? OPRSF=1

jump if sign

結果為負則轉移

JNS? OPR?SF=0
?JO?? OPROF=1

jump if overflow

結果溢出則轉移

JNO?? OPROF=0
?JP?? OPRPF=1

jump if parity,or parity even

奇偶為為1則轉移

JNP?? OPRPF=0
?JB(JNAE,JC)??OPRCF=1

低于below,

或者不高于或者等于not above or equal,

或進位為1則轉移carry

JNB(JAE,JNC)? OPRCF=0

?

3.2比較兩個無符號數,并根據比較結果轉移*

* 適用于地址或雙精度數低位字的比較

    格式          測試條件

<    JB (JNAE,JC) OPR   ?? CF = 1      jump if below (not above or equal , carry)
?≥    JNB (JAE,JNC) OPR    CF = 0?     jump if not below ( above or equal , not carry)
?≤    JBE (JNA) OPR     ? CF∨ZF = 1    jump if below or equal (not above)
>    JNBE (JA) OPR      CF∨ZF = 0  ? jump if not below or equal (above)

?

?3.3?比較兩個帶符號數,并根據比較結果轉移*

* 適用于帶符號數的比較

    格式         測試條件
<   JL (JNGE) OPR    SF?OF = 1    ?   less, not greater or equal
≥    JNL (JGE) OPR   ? SF?OF = 0
≤    JLE (JNG) OPR   ? (SF?OF)∨ZF = 1    less or equal, not greater
>   JNLE (JG) OPR    (SF?OF)∨ZF = 0

?

?3.4?測試 CX 的值為 0 則轉移

格式? ? ? ? ? ? ? ? ? ? 測試條件
JCXZ OPR? ? ? ? ?(CX)=0

?

?

?

?

3.循環指令

3.1概述

注意:
* CX 中存放循環次數
* 只能使用段內直接尋址的8 位位移量

?

LOOP
LOOPZ / LOOPE
LOOPNZ / LOOPNE

?

執行步驟:
  (1) (CX) ← (CX) - 1
  (2) 檢查是否滿足測試條件,

   如滿足則(IP) ← (IP) + 8位位移量,實行循環;
   不滿足則 IP 不變,退出循環。

?

3.2指令

循環指令:LOOP OPR
測試條件:(CX)?≠ 0

?

為零或相等時循環指令:LOOPZ(LOOPE) OPR
測試條件:ZF=1 且 (CX)?≠ 0

?

不為零或不相等時循環指令:LOOPNZ(LOOPNE) OPR
測試條件:ZF=0 且 (CX)?≠ 0

?

?

?

?

?

?

?

?

?4.子程序調用和返回指令

?

?

?4.1?CALL 調用指令

段內直接近調用:CALL DST
執行操作: (SP) ← (SP) - 2
    ? ? ?( (SP)+1,(SP) ) ← (IP)
      (IP) ← (IP) + 16位位移量


段內間接近調用:CALL DST
執行操作: (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (IP)
      (IP) ← (EA)

?

段間直接遠調用:CALL DST
執行操作:? ?(SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (CS)
      (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (IP)
      (IP) ← 偏移地址
      (CS) ← 段地址

?

段間間接遠調用:CALL DST
執行操作: (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (CS)
      (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (IP)
      (IP) ← (EA)
      (CS) ← (EA+2)

?

?4.2?RET 返回指令

段內近返回:RET
執行操作: (IP) ← ( (SP)+1,(SP) )
      (SP) ← (SP) + 2

?

段內帶立即數近返回:RET EXP

?

段間遠返回:RET
執行操作: (IP) ← ( (SP)+1,(SP) )
      (SP) ← (SP) + 2
      (CS) ← ( (SP)+1,(SP) )
      (SP) ← (SP) + 2

?

段間帶立即數遠返回:RET EXP

?

?

?

?

?5.中斷指令

?

5.1中斷向量

中斷例行程序的入口地址,存放于中斷向量區。

?

?

?

5.2 中斷指令: INT TYPE 或 INT

執行操作: (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (FLAGS)
      (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (CS)
      (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (IP)
      (IP) ← (TYPE*4)
      (CS) ← (TYPE*4+2)

?

5.3 溢出中斷指令:INTO

執行操作: 若OF=1,(SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (FLAGS)
      (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (CS)
      (SP) ← (SP) - 2
      ( (SP)+1,(SP) ) ← (IP)

      (IP) ← (10H)
      (CS) ← (12H)

?

5.4 從中斷返回指令:IRET

執行操作: (IP) ← ( (SP)+1,(SP) )
      (SP) ← (SP) + 2
      (CS) ← ( (SP)+1,(SP) )
      (SP) ← (SP) + 2
      (FLAGS) ← ( (SP)+1,(SP) )
      (SP) ← (SP) + 2

?

注意:

* TYPE (0~255) 是中斷類型號, 隱含的類型號為3
* INT 指令還把 IF 和 TF 置0,但不影響其它標志位
* IRET 指令執行完,標志位由堆棧中取出的值確定

?

?

?

?

??

轉載于:https://www.cnblogs.com/ZanderZhao/p/11054484.html

總結

以上是生活随笔為你收集整理的30336控制转移指令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。