新聞中心

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

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

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

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

        11.4.25乘法指令MUL

        (1)編碼格式

        乘法指令MUL的編碼格式如圖11.31所示。

        圖11.31MUL指令的編碼格式

        MUL指令實現兩個數(可以為無符號數,也可以為有符號數)的乘積,并將指令的執行結果存放到一個32位的寄存器中,同時可以根據運算結果設置CPSR寄存器中相應的條件標志位。

        (2)指令的語法格式

        MULRd>,Rm>

        ①Rd>

        目的寄存器,存放乘法操作的第一個乘數。

        ②Rm>

        第二個乘數所在寄存器。

        (3)指令操作的偽代碼

        Rd=(Rm*Rd)[31:0]

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=unaffected

        VFlag=unaffected

        注意

        如果乘法指令MUL的源和目的寄存器使用相同的寄存器,則指令的執行結果不可預知;對于有符號數和無符號數,指令的操作結果是一樣的。

        (4)對應的指令

        MULSRd>,Rm>,Rd>

        11.4.26傳送指令MVN

        (1)編碼格式

        傳送指令MVN的編碼格式如圖11.32所示。

        圖11.32MVN指令的編碼格式

        MVN指令將一個數的反碼傳送到目標寄存器,并根據指令的執行結果更新CPSR中相應的條件標志位。

        (2)指令的語法格式

        MVNRd>,Rm>

        ①Rd>

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

        ②Rm>

        源寄存器,存放要傳送反碼的數據。

        (3)指令操作的偽代碼

        Rd=NOTRm

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=unaffected

        VFlag=unaffected

        (4)對應的指令

        MVNSRd>,Rm>

        11.4.27取反指令NEG

        (1)編碼格式

        取反指令NEG的編碼格式如圖11.33所示。

        圖11.33NEG指令的編碼格式

        NEG取反指令將一個寄存器的值取反存入另一個寄存器。同時根據指令的操作結果更新CPSR中相應的條件標志位。

        (2)指令的語法格式

        NEGRd>,Rm>

        ①Rd>

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

        ②Rm>

        源寄存器,包含將要被取反的數據。

        (3)指令操作的偽代碼

        Rd=0–Rm

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=NOTBorrowFrom(0-Rm)

        VFlag=OverflowFrom(0-Rm)

        (4)對應的指令

        RSBSRd>,Rm>,#0



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浙江省| 哈巴河县| 元氏县| 东至县| 体育| 通榆县| 蒙自县| 乃东县| 璧山县| 大方县| 毕节市| 兴业县| 南康市| 辽阳市| 林芝县| 新密市| 上虞市| 沁水县| 东乡族自治县| 新巴尔虎左旗| 多伦县| 平果县| 页游| 镇赉县| 栾川县| 新巴尔虎左旗| 图木舒克市| 淄博市| 韶关市| 汕头市| 丹寨县| 洪雅县| 昌黎县| 贺兰县| 滦平县| 河西区| 彰化县| 黎平县| 广宁县| 临沭县| 昆山市|