在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

            作者: 時間:2016-11-27 來源:網絡 收藏
              2 條件轉移指令(conditional jump)

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

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

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

              例3.40程序中的"JNZ AGAIN"匯編成"JNZ 000D",000D是標號AGAIN的地址,指令"JNZ 000D"的機器代碼是75FA,75是操作碼,FA是位移量。當CPU讀取JNZ指令后,IP寄存器自動加2(JNZ的指令長度)指向了下一條指令(MOV),此時IP的當前值是0013。計算轉向地址時,(IP)當前+位移量 = 0013+FA = 0013+FFFA = 000D,這正是AGAIN的偏移地址。實際上FA是-6的補碼,8位的FA與16位的0013相加時,FA符號擴展成為FFFA,相加的加結果為000D。
                        表3.4 條件轉移指令
            分類
            指 令
            轉 移 條 件
            說 明
            (Ⅰ)
            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
            進位位為1, 則轉移
            JNC
            CF=0
            進位位為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, 則轉移

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

            本文引用地址:http://www.biyoush.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

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

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

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

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



            上一頁 1 2 下一頁

            評論


            技術專區(qū)

            關閉