• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉,開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            8088 匯編跳轉

            Posted on 2009-10-19 21:36 S.l.e!ep.¢% 閱讀(409) 評論(0)  編輯 收藏 引用 所屬分類: Crack

            第2章 基礎知識  

            第一節 軟件保護
            第二節 匯編語言
            第三節 匯編跳轉
            第四節 浮點指令
            第五節 分析技術

            第三節 8088 匯編跳轉

            一、狀態寄存器

            PSW(Program Flag)程序狀態字寄存器,是一個16位寄存器,由條件碼標志(flag)和控制標志構成,如下所示:

            15
            14
            13
            12
            11
            10
            9
            8
            7
            6
            5
            4
            3
            2
            1
            0
             
             
             
             
            OF
            DF
            IF
            TF
            SF
            ZF
             
            AF
             
            PF
             
            CF


            條件碼:
            ①OF(Overflow Flag)溢出標志。溢出時為1,否則置0。
            ②SF(Sign Flag)符號標志。結果為負時置1,否則置0.
            ③ZF(Zero Flag)零標志,運算結果為0時ZF位置1,否則置0.
            ④CF(Carry Flag)進位標志,進位時置1,否則置0.
            ⑤AF(Auxiliary carry Flag)輔助進位標志,記錄運算時第3位(半個字節)產生的進位置。有進位時1,否則置0.
            ⑥PF(Parity Flag)奇偶標志。結果操作數中1的個數為偶數時置1,否則置0.

            控制標志位:
            ⑦DF(Direction Flag)方向標志,在串處理指令中控制信息的方向。

            ⑧IF(Interrupt Flag)中斷標志。
            ⑨TF(Trap Flag)陷井標志。

            二、 直接標志轉移(8位尋址)

            指令格式
            機器碼
            測試條件
            如...則轉移
             
             
            指令格式
            機器碼
            測試條件
            如...則轉移
            JC
            72
            C=1
            有進位
            JNS
            79
            S=0
            正號
            JNC
            73
            C=0
            無進位
            JO
            70
            O=1
            有溢出
            JZ/JE
            74
            Z=1
            零/等于
            JNO
            71
            O=0
            無溢出
            JNZ/JNE
            75
            Z=0
            不為零/不等于
            JP/JPE
            7A
            P=1
            奇偶位為偶
            JS
            78
            S=1
            負號
            JNP/IPO
            7B
            P=0
            奇偶位為奇

            三、間接標志轉移(8位尋址)

            指令格式
            機器碼
            測試格式
            如...則轉移
            JA/JNBE(比較無符號數)
            77
            C或Z=0
            >  高于/不低于或等于
            JAE/JNB(比較無符號數)
            73
            C=0
            >=  高于或等于/不低于
            JB/JNAE(比較無符號數)
            72
            C=1
            <  低于/不高于或等于
            JBE/JNA(比較無符號數)
            76
            C或Z=1
            <=  低于或等于/不高于
            JG/JNLE(比較帶符號數)
            7F
            (S異或O)或Z=0
            >  大于/不小于或等于
            JGE/JNL(比較帶符號數)
            7D
            S異或O=0
            >=  大于或等于/不小于
            JL/JNGE(比較帶符號數)
            7C
            S異或O=1
            <  小于/不大于或等于
            JLE/JNG(比較帶符號數)
            7E
            (S異或O)或Z=1
            <=  小于或等于/不大于

            四、無條件轉移指令 (fisheep譯 fisheep@sohu.com)

            操作碼 偽碼指令 含義
            EB  cb
            JMP rel8 相對短跳轉(8位),使rel8處的代碼位下一條指令
            E9  cw
            JMP rel16 相對跳轉(16位),使rel16處的代碼位下一條指令
            FF  /4
            JMP r/m16 絕對跳轉(16位),下一指令地址在r/m16中給出
            FF  /4
            JMP r/m32 絕對跳轉(32位),下一指令地址在r/m32中給出
            EA  cb
            JMP ptr16:16 遠距離絕對跳轉, 下一指令地址在操作數中
            EA  cb
            JMP ptr16:32 遠距離絕對跳轉, 下一指令地址在操作數中
            FF  /5
            JMP m16:16 遠距離絕對跳轉, 下一指令地址在內存m16:16中
            FF  /5
            JMP m16:32 遠距離絕對跳轉, 下一指令地址在內存m16:32中

            五、16位/32位尋址方式 (fisheep譯 fisheep@sohu.com)

            操作碼
            偽碼指令
            跳轉含義
            跳轉類型
            跳轉的條件(標志位)
            0F 87  cw/cd
            JA rel16/32
            大于
            near
            (CF=0 and ZF=0)
            0F 83  cw/cd
            JAE rel16/32
            大于等于
            near
            (CF=0)
            0F 82  cw/cd
            JB rel16/32
            小于
            near
            (CF=1)
            0F 86  cw/cd
            JBE rel16/32
            小于等于
            near
            (CF=1 or ZF=1)
            0F 82  cw/cd
            JC rel16/32
            進位
            near
            (CF=1)
            0F 84  cw/cd
            JE rel16/32
            等于
            near
            (ZF=1)
            0F 84  cw/cd
            JZ rel16/32
            為0
            near
            (ZF=1)
            0F 8F  cw/cd
            JG rel16/32
            大于
            near
            (ZF=0 and SF=OF)
            0F 8D  cw/cd
            JGE rel16/32
            大于等于
            near
            (SF=OF)
            0F 8C  cw/cd
            JL rel16/32
            小于
            near
            (SF<>OF)
            0F 8E  cw/cd
            JLE rel16/32
            小于等于
            near
            (ZF=1 or SF<>OF)
            0F 86  cw/cd
            JNA rel16/32
            不大于
            near
            (CF=1 or ZF=1)
            0F 82  cw/cd
            JNAE rel16/32
            不大于等于
            near
            (CF=1)
            0F 83  cw/cd
            JNB rel16/32
            不小于
            near
            (CF=0)
            0F 87  cw/cd
            JNBE rel16/32
            不小于等于
            near
            (CF=0 and ZF=0)
            0F 83  cw/cd
            JNC rel16/32
            不進位
            near
            (CF=0)
            0F 85  cw/cd
            JNE rel16/32
            不等于
            near
            (ZF=0)
            0F 8E  cw/cd
            JNG rel16/32
            不大于
            near
            (ZF=1 or SF<>OF)
            0F 8C  cw/cd
            JNGE rel16/32
            不大于等于
            near
            (SF<>OF)
            0F 8D  cw/cd
            JNL rel16/32
            不小于
            near
            (SF=OF)
            0F 8F  cw/cd
            JNLE rel16/32
            不小于等于
            near
            (ZF=0 and SF=OF)
            0F 81  cw/cd
            JNO rel16/32
            未溢出
            near
            (OF=0)
            0F 8B  cw/cd
            JNP rel16/32
            不是偶數
            near
            (PF=0)
            0F 89  cw/cd
            JNS rel16/32
            非負數
            near
            (SF=0)
            0F 85  cw/cd
            JNZ rel16/32
            非零(不等于)
            near
            (ZF=0)
            0F 80  cw/cd
            JO rel16/32
            溢出
            near
            (OF=1)
            0F 8A  cw/cd
            JP rel16/32
            偶數
            near
            (PF=1)
            0F 8A  cw/cd
            JPE rel16/32
            偶數
            near
            (PF=1)
            0F 8B  cw/cd
            JPO rel16/32
            奇數
            near
            (PF=0)
            0F 88  cw/cd
            JS rel16/32
            負數
            near
            (SF=1)
            0F 84  cw/cd
            JZ rel16/32
            為零(等于)
            near
            (ZF=1)

            注: 一些指令操作數的含義說明:
              rel8? ? ? 表示 8 位相對地址
              rel16? ? 表示 16 位相對地址
              rel16/32? 表示 16或32 位相對地址
              r/m16? ? 表示16位寄存器
              r/m32? ? 表示32位寄存器
            国产A级毛片久久久精品毛片| 久久综合九色综合久99| 欧美伊香蕉久久综合类网站| 久久91精品国产91久久小草 | 精品久久久久久国产牛牛app| 久久伊人精品青青草原高清| 久久天堂AV综合合色蜜桃网| 久久久久久久综合综合狠狠| 色综合久久中文综合网| 国产一区二区精品久久岳| 青青热久久国产久精品| 97精品伊人久久大香线蕉app| 国产成人无码久久久精品一| 国产午夜电影久久| 久久毛片一区二区| 老司机午夜网站国内精品久久久久久久久 | 无码国产69精品久久久久网站| 午夜精品久久久久成人| 久久久久久久97| 久久国产精品免费| 国产精品嫩草影院久久| 91久久精品视频| 久久精品草草草| 亚洲国产成人久久综合一| 国产成人精品久久综合 | 久久精品www| 一本色道久久HEZYO无码| 精品久久久无码中文字幕天天| 久久久久亚洲精品日久生情| 亚洲va国产va天堂va久久| 久久成人小视频| 精品一二三区久久aaa片| 亚洲AV伊人久久青青草原| 久久精品18| 久久久精品人妻一区二区三区蜜桃| 久久中文字幕人妻丝袜| 狠狠色婷婷久久一区二区| 99久久国产精品免费一区二区| 四虎国产精品免费久久久| 精品久久人人爽天天玩人人妻| 久久九九精品99国产精品|