新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM指令尋址方式之: 內存訪問指令尋址

        ARM指令尋址方式之: 內存訪問指令尋址

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

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

        (2)

        opcode>{cond>}{L} coproc>,CRd>,[Rn>],#±offset_8>*4

        其中:

        · Rn>為基址寄存器,包含尋址操作的基地址;

        · offset_8>為8位立即數,該值的4倍為地址偏移量。

        (3)操作偽代碼

        If ConditionPassed(cond) then

        Start_address = Rn

        If U = = 1 then

        Rn = Rn + offset_8 * 4

        Else /*U = = 0*/

        Rn = Rn – offset_8 * 4

        Address = start_address

        While (NotFinished(coprocessor[cp_num]))

        Address = address +4

        End_address = address

        (4)說明

        如果基址寄存器指定為程序計數器r15,則指令的執行結果不可預知。

        4.[Rn>], Option>

        (1)編碼格式

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

        圖4.39 協處理器Load/Store指令——直接尋址

        該尋址方式指定一片連續的內存地址空間。訪問內存單元的第一個地址first_addressing>等于基址寄存器Rn>的值。接下來的內存訪問地址是前一個訪問地址加4。當協處理器發出傳輸中止信號時,數據傳送結束。

        指令不更新基址寄存器的值。指令編碼格式中bits[7:0]保留,所以可以將空閑位用作協處理器指令擴展。

        這種尋址方式的數據傳輸數目由協處理器決定,最多可以傳輸16字。

        (2)

        opcode>{cond>}{L} coproc>,CRd>,[Rn>],Option>

        其中:

        · Rn>為基址寄存器,包含尋址操作的基地址;

        · option>用作協處理器指令擴展。

        (3)操作偽代碼

        If ConditionPassed(cond) then

        Start_address = Rn

        Address = start_address

        While (NotFinished(coprocessor[cp_num]))

        Address = address +4

        End_address = address

        (4)說明

        如果基址寄存器指定為程序計數器r15,則尋址基地址為當前指令地址加8。


        上一頁 1 2 3 4 5 6 7 8 9 10 11 12 13 14 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鹿邑县| 德化县| 佛山市| 哈尔滨市| 勃利县| 饶阳县| 思南县| 来宾市| 张掖市| 福海县| 章丘市| 惠水县| 贡觉县| 屏东县| 苏尼特左旗| 海林市| 婺源县| 宜章县| 达州市| 宁陵县| 徐闻县| 贵溪市| 延庆县| 儋州市| 双辽市| 天镇县| 通州区| 青铜峡市| 青河县| 涞源县| 英德市| 武清区| 巨野县| 石景山区| 筠连县| 喀什市| 宁都县| 泸溪县| 大庆市| 洪江市| 丰顺县|