新聞中心

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

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

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

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

        下面詳細介紹各指令的語法和使用。

        11.4.1ADC指令

        (1)編碼格式

        帶進位的加法指令ADC的編碼格式如圖11.7所示。

        圖11.7ADC指令的編碼格式

        帶進位的ADC指令和加法指令ADD配合使用可以實現多字相加(multi-word),詳見指令集介紹。

        (2)指令的語法格式

        ADCRd>,Rm>

        ①Rd>

        第一個操作數寄存器,并且是操作結果的目的寄存器。

        ②Rm>

        第二操作數寄存器。

        (3)指令操作的偽代碼

        Rd=Rd+Rm+CFlag

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=CarryFrom{Rd+Rm+CFlag}

        VFlag=OverflowFrom{Rd+Rm+CFlag}

        (4)對應的指令

        ADCSRd>,Rd>,Rm>

        11.4.2小立即數加法指令ADD(1)

        (1)編碼格式

        立即數加法指令ADD(1)的編碼格式如圖11.8所示。

        圖11.8ADD(1)指令的編碼格式

        ADD加法指令實現“小常數”的加法運算,并將相加的結果保存到指定的寄存器中。

        (2)指令的語法格式

        ADDRd>,Rn>,#immed_3>

        ①Rd>

        加法操作的目標寄存器。

        ②Rn>

        操作數寄存器。

        ③#immed_3>

        3位的立即數。該立即數將和寄存器Rn>的值相加,并將結果保存到Rd>中。

        (3)指令操作的偽代碼

        Rd=Rn+immed_3

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=CarryFrom{Rn+immed_3}

        VFlag=OverflowFrom{Rn+immed_3}

        (4)對應的指令

        ADDSRd>,Rn>,#immed_3>

        11.4.3大立即數加法指令ADD(2)

        (1)編碼格式

        立即數加法指令ADD(2)的編碼格式如圖11.9所示。

        圖11.9ADD(2)指令的編碼格式

        此中形式的ADD(2)指令將一個大的立即數(8bit)與指定寄存器的值相加,并將運算結果保存到此寄存器中。

        (2)指令的語法格式

        ADDRd>,#immed_8>

        ①Rd>

        加法操作的目標寄存器。

        ②#immed_8>

        8位的立即數。該立即數將和寄存器Rd>的值相加,并將結果保存到Rd>中。

        (3)指令操作的偽代碼

        Rd=Rd+immed_8

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=CarryFrom{Rn+immed_8}

        VFlag=OverflowFrom{Rn+immed_8}

        (4)對應的ARM指令

        ADDSRd>,Rd>,#immed_8>



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 岱山县| 化隆| 连州市| 万年县| 白朗县| 叶城县| 雷州市| 河北省| 电白县| 满洲里市| 安泽县| 苍溪县| 大石桥市| 嵊州市| 那曲县| 渭南市| 同仁县| 额尔古纳市| 黔江区| 肇庆市| 宜城市| 武陟县| 淳安县| 五华县| 嘉善县| 东乌珠穆沁旗| 巴中市| 郎溪县| 洪湖市| 乌海市| 阜阳市| 白河县| 武夷山市| 湖口县| 噶尔县| 宣化县| 门头沟区| 浦北县| 吉隆县| 资溪县| 周至县|