新聞中心

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

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

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

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

        6.[Rn],±Rm>

        (1)編碼格式

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

        圖4.29 雜項內存訪問指令——后索引寄存器偏移尋址編碼格式

        指令訪問地址為實際的基址寄存器的值。當指令的執行條件滿足時,將基址寄存器的值加/減索引寄存器Rm的值回寫到Rn基址寄存器。

        (2)

        LDR|STR{cond>}H|SH|SB|D Rd>,[Rn],±Rm>

        其中:

        · Rn為基址寄存器,該寄存器包含內存訪問的基地址;

        · Rm>為偏移地址寄存器,包含內存訪問地址偏移量。

        (3)操作偽代碼

        Address = Rn

        If conditionPassed{cond} then

        If U = = 1 then

        Rn = Rn + Rm

        Else

        Rn = Rn – Rm

        (4)說明

        ① 程序寄存器r15被指定為Rm或Rn,指令的執行結果不可預知。

        ② 如果Rm和Rn指定為同一寄存器,指令的執行結果不可預知。

        4.2.3 批量Load/Store方式

        批量Load/Store指令將一片連續內存單元的數據加載到通用寄存器組中或將一組通用寄存器的數據存儲到內存單元中。

        批量Load/Store指令的尋址模式產生一個內存單元的地址范圍,指令寄存器和內存單元的對應關系滿足這樣的規則,即編號低的寄存器對應于內存中低地址單元,編號高的寄存器對應于內存中的高地址單元。

        指令的如下。

        LDM|STM{cond>}addressing_mode> Rn>{!},registers>^>

        指令的尋址方式如表4.6所示。

        表4.6 批量Load/Store指令的尋址方式

        格 式

        模 式

        1

        IA(Increment After)

        后遞增方式

        2

        IB(Increment Before)

        先遞增方式

        3

        DA(Decrement After)

        后遞減方式

        4

        DB(Decrement Before)

        先遞減方式

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

        圖4.30 批量Load/Store指令編碼格式

        編碼格式中各標志位的含義如表4.7所示。

        表4.7 批量Load/Store指令編碼格式各標志位含義

        位標識

        取 值

        含 義

        P

        P=0

        Rn包含的地址,是所要訪問的內存塊的高地址(U=0)還是低地址(U=1)

        P=1

        標識Rn所指向的內存單元是否被訪問

        U

        U=0

        Rn所指內存單元為所要訪問的內存單元塊的高地址

        U=1

        Rn所指內存單元為所要訪問的內存單元塊的低地址

        S

        S=0

        當程序計數器PC作為要加載的寄存器之一時,S標識是否將spsr內容拷貝到cpsr;對于不加載PC的load指令和所有store指令,S標識特權模式下,使用用戶模式寄存器組代替當前模式下寄存器組

        S=1

        W

        W=0

        數據傳送完畢,更新地址寄存器內容

        W=1

        L

        L=0

        Store指令

        L=1

        Load指令



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 北海市| 筠连县| 云南省| 化州市| 太白县| 鹤壁市| 锡林浩特市| 崇文区| 石泉县| 宜兴市| 东兰县| 霍山县| 罗定市| 谢通门县| 河源市| 扶风县| 北海市| 南阳市| 巫山县| 安乡县| 百色市| 株洲市| 邛崃市| 巴东县| 南昌县| 滨海县| 河北区| 金堂县| 磴口县| 五大连池市| 九寨沟县| 嘉荫县| 称多县| 尤溪县| 玉门市| 肥城市| 镇安县| 峨山| 无棣县| 银川市| 全南县|