新聞中心

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

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

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

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

        11.4.28邏輯或指令ORR

        (1)編碼格式

        邏輯或指令ORR的編碼格式如圖11.34所示。

        圖11.34ORR指令的編碼格式

        ORR指令將兩個寄存器的值做按位做或運算,并根據指令的執行結果更新程序狀態寄存器的標志位。

        (2)指令的語法格式

        ORRRd>,Rm>

        ①Rd>

        目的寄存器,存放指令的操作結果,存放做邏輯或運算的其中一個操作數。

        ②Rm>

        存放做邏輯或運算的另一個操作數。

        (3)指令操作的偽代碼

        Rd=RdORRm

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=unaffected

        VFlag=unaffected

        (4)對應的指令

        ORRSRd>,Rd>,Rm>

        11.4.29循環右移指令ROR

        (1)編碼格式

        循環右移指令ROR的編碼格式如圖11.35所示。

        圖11.35ROR指令的編碼格式

        ROR指令將一個給定寄存器的值循環右移一定的位數。并根據指令的操作結果更新狀態寄存器的條件標志位。詳見指令操作偽代碼。

        (2)指令的語法格式

        RORRd>,Rs>

        ①Rd>

        目的寄存器。存儲指令的操作結果和被移位的數值。

        ②Rs>

        循環左移的位數。

        (3)指令操作的偽代碼

        ifRs[7:0]==0then

        CFlag=unaffected

        Rd=unaffected

        ElseifRs[4:0]==0then

        CFlag=Rd[31]

        Rd=unaffected

        Else/*Rs[4:0]>0*/

        CFlag=Rd[Rs[4:0]-1]

        Rd=RdRotate_RightRs[4:0]

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        VFlag=unaffected

        (4)對應的指令

        MOVSRd>,Rd>,RORRs>

        11.4.30帶進位的減指令SBC

        (1)編碼格式

        帶進位的減指令SBC的編碼格式如圖11.36所示。

        圖11.36SBC指令的編碼格式

        SBC指令從指定寄存器中減去另一個寄存器的數值,再減去寄存器CPSR中C條件標志位的反碼,并把結果保存到目標寄存器中,同時根據操作的結果更新CPSR中相應的條件標志位。

        (2)指令的語法格式

        SBCRd>,Rm>

        ①Rd>

        被減數寄存器,同時保存指令的操作結果。

        ②Rm>

        減數寄存器,保存減法操作的減數。

        (3)指令操作的偽代碼

        Rd=Rd–Rm–NOT(CFlag)

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=NOTBorrowFrom(Rd–Rm–NOT(CFlag))

        VFlag=OverflowFrom(Rd–Rm–NOT(CFlag))

        (4)對應的指令

        SBCSRd>,Rd>,Rm>



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 黄陵县| 吴旗县| 于都县| 蕉岭县| 灵璧县| 达州市| 东阳市| 青阳县| 鄄城县| 龙川县| 嘉祥县| 上高县| 承德市| 元朗区| 四会市| 淮南市| 松桃| 邹平县| 洞头县| 翁源县| 孟连| 丰城市| 越西县| 伊通| 平陆县| 凤山县| 崇礼县| 衡山县| 陆河县| 景东| 赤峰市| 东丽区| 高唐县| 綦江县| 兴安县| 孝感市| 闽清县| 杨浦区| 应用必备| 新平| 陵水|