新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM指令尋址方式之: 數據處理指令的尋址方式

        ARM指令尋址方式之: 數據處理指令的尋址方式

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

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

        10.Rm>, ROR Rs>

        (1)編碼格式

        指令的編碼格式如圖4.11所示。

        圖4.11 ——寄存器循環右移尋址編碼格式

        指令的操作數由寄存器Rm的數值循環右移一定的位數。移位的位數由Rs的最低8位bits[7∶0]決定。當Rs[7∶0]=0時,指令的操作數為寄存器Rm的值,循環器的進位值為CPSR中的C條件標志位;否則,循環器的進位值為Rm最后被移出的位。

        (2)語法格式

        opcode> {cond>} {S} Rd>,Rn>,Rm>,ROR Rs>

        其中:

        · Rm>為指令被移位的寄存器;

        · ROR為循環右移操作標識;

        · Rs>為包含循環右移位數的寄存器。

        (3)操作偽代碼

        if Rs[7:0] = = 0 then

        shifter_operand = Rm

        shifter_carry_out = C flag

        else if Rs[4:0] == 0 then

        shifter_operand = Rm

        shifter_carry_out = Rm[31]

        else

        shifter_operand = Rm Rotate_Right Rs[4:0]

        shifter_carry_out = Rm[Rs[4:0] - 1]

        (4)說明

        如果程序計數器r15被用作Rd、Rm、Rn或Rs中的任意一個,則指令的執行結果不可預知。

        11.Rm>, RRX

        (1)編碼格式

        指令的編碼格式如圖4.12所示。

        圖4.12 ——擴展右移尋址編碼格式

        指令的操作數為寄存器Rm的數值右移一位,并用CPSR中的C條件標志位填補空出的位。CPSR中的C條件標志位則用移出的位代替。

        (2)語法格式

        opcode> {cond>} {S} Rd>,Rn>,Rm>,RRX

        其中:

        · Rm>為指令被移位的寄存器;

        · RRX為擴展的循環右移操作。

        (3)操作偽代碼

        shifter_operand = (C flag logical_shift_left 31) OR (Rm logical_shift_Right 1)

        shifter_carry_out = Rm[0]

        (4)說明

        ① 此種尋址方式的編碼形式和“ROR #0”一致。

        ② 如果程序計數器r15被用作Rd、Rm、Rn或Rs中的任意一個,則指令的執行結果不可預知。

        ③ 可以實現ADC指令的功能。


        上一頁 1 2 3 4 5 6 7 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 龙岩市| 绍兴县| 黄石市| 应城市| 东明县| 镇安县| 盖州市| 儋州市| 精河县| 拉孜县| 潮州市| 桂林市| 桓台县| 滦平县| 金堂县| 宁陵县| 洞头县| 马关县| 泉州市| 黄陵县| 烟台市| 噶尔县| 芜湖县| 西乡县| 股票| 安丘市| 安西县| 寿阳县| 邵东县| 永平县| 东辽县| 抚远县| 若尔盖县| 遂昌县| 通山县| 梁山县| 十堰市| 大冶市| 泰顺县| 林西县| 灵石县|