新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Thumb指令集之:Thumb數據處理指令

        Thumb指令集之:Thumb數據處理指令

        作者: 時間:2013-09-30 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257041.htm

        11.4.4寄存器加法指令ADD(3)

        (1)編碼格式

        寄存器加法指令ADD(3)的編碼格式如圖11.10所示。

        圖11.10ADD(3)指令的編碼格式

        此種形式的加法指令將兩個寄存器的值相加,將結果放入第三個目標寄存器,并根據操作結果更新標志位。

        (2)指令的語法格式

        ADDRd>,Rn>,Rm>

        ①Rd>

        加法操作的目標寄存器。

        ②Rn>

        操作數寄存器。存放加法操作的第一個操作數。

        ③Rm>

        操作數寄存器。存放加法操作的第二個操作數。

        (3)指令操作的偽代碼

        Rd=Rn+Rm

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=CarryFrom(Rn+Rm)

        VFlag=OverflowFrom(Rn+Rm)

        11.4.5寄存器加法指令ADD(4)

        (1)編碼格式

        寄存器加法指令ADD(4)的編碼格式如圖11.11所示。

        圖11.11ADD(4)指令的編碼格式

        此種形式的加法指令將兩個寄存器的值相加,將結果放入第三個目標寄存器。該指令不更新程序狀態字的標志位。

        注意

        該指令與ADD(3)的區別在于其操作數寄存器。該指令的操作數寄存器為r8~r14和PC高寄存器。操作結果對程序狀態字的標志位沒有影響。

        (2)指令的語法格式

        ADDRd>,Rm>

        ①Rd>

        指令的操作數寄存器,其中保存加法操作的一個操作數,并將指令的操作結果放入該寄存器。取值范圍為r0~r15。

        ②Rm>

        操作數寄存器。存放加法操作的第二個操作數。可以為r0~r15的任意寄存器。

        (3)指令操作的偽代碼

        Rd=Rd+Rm

        11.4.6PC相關加法指令ADD(5)

        (1)編碼格式

        寄存器加法指令ADD(5)的編碼格式如圖11.12所示。

        圖11.12ADD(5)指令的編碼格式

        該指令將一個立即數和PC值相加,并將PC相關地址寫入目標寄存器。立即數可以是0~1020范圍內的任意數值的4倍。該指令不更新程序狀態字的標志位。

        (2)指令的語法格式

        ADDRd>,PC,#immed_8>×4

        ①Rd>

        指令的目的寄存器,存放指令的操作結果。

        ②PC

        PC相關地址。

        ③immed_8>

        加到PC值上的8位立即數。

        (3)指令操作的偽代碼

        Rd=(PCAND0xfffffffc)+(immed_82)



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 伊川县| 府谷县| 景洪市| 庆安县| 安龙县| 海宁市| 额敏县| 中阳县| 临泉县| 铅山县| 年辖:市辖区| 额敏县| 溧阳市| 江北区| 乐业县| 九江市| 夏津县| 辰溪县| 洞口县| 翁源县| 安宁市| 南乐县| 曲周县| 沙坪坝区| 闽侯县| 大港区| 团风县| 肇东市| 阳原县| 察隅县| 南安市| 雅安市| 沿河| 台江县| 黔南| 万全县| 阿鲁科尔沁旗| 克拉玛依市| 钦州市| 措勤县| 阿拉尔市|