<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 8086指令系統---控制轉移指令(一)

8086指令系統---控制轉移指令(一)

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏
  2 條件轉移指令(conditional jump)

  條件轉移指令是在滿(mǎn)足了規定的條件后才控制程序轉移的一類(lèi)指令,8086的條件轉移指令總結在表3.4中。

  所有條件轉移指令都是短轉移指令,轉移的目標地址必須在當前IP地址的-128至+127字節范圍之內,因此條件轉移指令是2字節指令。

  計算轉向地址的方法和無(wú)條件短轉移指令是一樣的,看例3.40的反匯編代碼。

  例3.40程序中的"JNZ AGAIN"匯編成"JNZ 000D",000D是標號AGAIN的地址,指令"JNZ 000D"的機器代碼是75FA,75是操作碼,FA是位移量。當CPU讀取JNZ指令后,IP寄存器自動(dòng)加2(JNZ的指令長(cháng)度)指向了下一條指令(MOV),此時(shí)IP的當前值是0013。計算轉向地址時(shí),(IP)當前+位移量 = 0013+FA = 0013+FFFA = 000D,這正是AGAIN的偏移地址。實(shí)際上FA是-6的補碼,8位的FA與16位的0013相加時(shí),FA符號擴展成為FFFA,相加的加結果為000D。
            表3.4 條件轉移指令
分類(lèi)
指 令
轉 移 條 件
說(shuō) 明
(Ⅰ)
JZ/JE
ZF=1
為零/相等, 則轉移
JNZ/JNE
ZF=0
不為零/不相等, 則轉移
JS
SF=1
為負, 則轉移
JNS
SF=0
為正, 則轉移
JO
OF=1
溢出, 則轉移
JNO
OF=0
不溢出, 則轉移
JP
PF=1
奇偶位為1, 則轉移
JNP
PF=0
奇偶位為0, 則轉移
JC
CF=1
進(jìn)位位為1, 則轉移
JNC
CF=0
進(jìn)位位為0, 則轉移
(Ⅱ)
JB/JNAE/JC
CF=1
低于/不高于等于, 則轉移
JNB/JAE/JNC
CF=0
不低于/高于等于, 則轉移
JBE/JNA
(CFZF)=1
低于等于/不高于, 則轉移
JNBE/JA
(CFZF)=0
不低于等于/高于, 則轉移
(Ⅲ)
JL/JNGE
(SFOF)=1
小于/不大于等于, 則轉移
JNL/JGE
(SFOF)=0
不小于/大于等于, 則轉移
JLE/JNG
((SFOF)ZF)=1
小于等于/不大于, 則轉移
JNLE/JG
((SFOF)ZF)=0
不小于等于/大于, 則轉移
(Ⅳ)
JCXZ
(CX)=0
CX的內容為0, 則轉移

注:(Ⅰ)根據條件碼的值轉移 (Ⅱ)比較兩個(gè)無(wú)符號數,根據比較的結果轉移
(Ⅲ)比較兩個(gè)帶符號數,根據比較的結果轉移 (Ⅳ)根據CX寄存器的值轉移

本文引用地址:http://dyxdggzs.com/article/201611/322189.htm

 

1050:0000  B86610    MOV AX,1040
    1050:0003  8ED8     MOV DS,AX
    1050:0005  B90500    MOV CX,0005
    1050:0008  BB0000    MOV BX,0000
    1050:000D  0207 AGAIN: ADD AL,[BX]
    1050:000F  43      INC BX
    1050:0010  49      DEC CX
    1050:0011  75FA     JNZ 000D
    1050:0013  A20500    MOV [0005],AL
    1050:0016  B44C     MOV AH,4C
    1050:0018  CD21     INT 21

 例假設程序進(jìn)行兩個(gè)帶符號數的比較,并根據比較結果轉移,其中(AL)=80H,(BL)=01,請指出下面 兩組指令的轉向地址。

 ?、?CMP AL,BL    ?、?CMP AL,BL
    JL XY         JB XY  

  答:⑴ 轉向目標地址XY;⑵不能實(shí)現轉移。
    執行CMP指令時(shí),(AL)-(BL)=80-01=7F,條件碼設置為:SF=0,OF=1,CF=0。執行JL指令時(shí),測試轉移條件:SFOF = 01 =1,說(shuō)明滿(mǎn)足(AL)<(BL)的轉移條件,因此,(IP)←XY的偏移地址,程序即轉移到XY單元執行新的指令。

  JB指令的轉移條件為CF=1,而CMP的執行結果使CF=0,所以不能引起轉移。



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 8086指令系統控制轉移指

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>