微機控制轉移類指令

2022-09-04 12:42:09 字數 1284 閱讀 8926

1.無條件跳轉指令

指令格式;jmp 目標位址

注意點:

1)指令目標位址若在jmp指令所在的**段內,屬段內跳轉,指令只修改ip內容。指令目標位址若在jmp指令所在的**段外,屬段間跳轉,cs及ip均要修改。

2)無條件跳轉指令的執行結果不影響標誌位。

條件跳轉指令,條件跳轉指令可分為三類:簡單條件跳轉指令、帶符號數條件跳轉指令和無符號數條件跳轉指令

(1)簡單條件跳轉指令

jc      目的位址     進製標誌位cf=1,轉移

jnc   目的位址     進製標誌位cf=0,轉移

jz      目的位址     零標誌位zf=1,轉移

jnz    目的位址    零標誌位zf=0,轉移

js      目的位址    符號標誌sf=1,轉移

jns   目的位址    符號標誌sf=0,轉移

jo     目的位址    溢位標誌of=1,轉移

jno   目的位址    溢位標誌of=0,轉移

jp      目的位址    奇偶標誌pf=1,轉移

jnp    目的位址    奇偶標誌pf=0,轉移

jcxz  目的位址    cx=0,轉移

注意點:

1)條件轉移指令只能轉移到離本指令-128~+127位元組範圍內,是一種相對轉移形式,當要往較遠單元位址條件轉移時,可以在本指令-128~+127位元組範圍內安排一條無條件轉移指令作為中轉指令即可

2)在使用簡單條件跳轉指令時,必須明確相應標誌位的變化。

(2)帶符號數條件跳轉指令

指令格式:

jg/jnle    目標位址      大於、或不小於且不等於,轉移

jge/jnl    目標位址      大於或等於、或不小於,轉移

jl/jnge    目標位址      小於或不大於且不等於,轉移

jle/jng    目標位址      小於或等於、或不大於

注意點:在使用帶符號數條件跳轉指令時,必須明確當處理的資料是帶符號數,否則將得不到正確答案

(3)無符號數條件跳轉指令

指令格式:

jb/jnae     目標位址       低於、或不高於且不等於,轉移

jnb/jae     目標位址       不低於、或高於或等於,轉移

ja/jnbe     目標位址       不低於、或高於且不等於,轉移

jna/jbe     目標位址       低於、或不高於或等於,轉移

注意點:在使用無符號數條件跳轉指令時,必須明確當處理的資料是無符號數,否則將得不到正確答案。

控制轉移指令

jmp j jcxz loop call retjmp jump 無條件轉移指令名稱 格式 執行操作 段內直接短跳轉 jmp short opr ip ip 8位偏移量 段內直接近轉移 jmp near ptr opr ip ip 16位偏移量 段內間接轉移 jmp word ptr opr ip ...

控制轉移指令

組合語言 1.jmp 段內轉移 short 8bit 128 127 near 16bit 2 15 2 15 1 段間轉移 遠轉移 32bit 定址方式 段內相對定址 jmp label 修改ip 段內間接定址 jmp r16 m16 更換ip 段間直接定址 jmp far ptr label 段...

組合語言 控制轉移類指令

1 無條件轉移指令 根據轉移的距離,jmp指令可分為兩類 段內轉移和段間轉移 段內轉移是在同一 段內進行,又稱近轉移,只要修改ip的值即可實現 段間轉移可以在不同 之間進行,又稱遠轉移,需要同時修改cs和ip的值。直接轉移是指轉移的目標位址直接出現在指令中,在程式執行前就已經確定 間接轉移是指轉移的...