新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM指令尋址方式之: 內(nèi)存訪問指令尋址

        ARM指令尋址方式之: 內(nèi)存訪問指令尋址

        作者: 時(shí)間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

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

        4.[Rn,±Rm] !

        (1)編碼格式

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

        圖4.27 雜項(xiàng)內(nèi)存訪問指令——前索引寄存器偏移尋址編碼格式

        內(nèi)存訪問地址為基址寄存器Rn的值加(或減)偏移寄存器Rm的值。當(dāng)指令的執(zhí)行條件cc>滿足時(shí),生成地地址將寫回基址寄存器。

        (2)

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

        其中:

        · Rn為基址寄存器,該寄存器包含內(nèi)存訪問的基地址;

        · Rm>為偏移地址寄存器,包含內(nèi)存訪問地址偏移量;

        · !設(shè)置指令編碼中的W位,更新指令基址寄存器。

        (3)操作偽代碼

        If U = = 1 then

        Address = Rn + Rm

        Else

        Address = Rn – Rm

        If ConditionPassed{cond} then

        Rn = address

        (4)說明

        ① 如果Rn和Rm指定為同一寄存器,指令的執(zhí)行結(jié)果不可預(yù)知。

        ② 如果程序計(jì)數(shù)器r15被用作Rm或Rn,則指令的執(zhí)行結(jié)果不可預(yù)知。

        5.[Rn],#± offset_8>

        (1)編碼格式

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

        圖4.28 雜項(xiàng)內(nèi)存訪問指令——后索引立即數(shù)偏移尋址編碼格式

        指令使用基址寄存器Rn的值作為實(shí)際內(nèi)存訪問地址。當(dāng)指令的執(zhí)行條件滿足時(shí),將基址寄存器的值加/減偏移量生產(chǎn)新的地址值回寫到Rn寄存器中。

        (2)

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

        其中:

        · Rn為基址寄存器,該寄存器包含內(nèi)存訪問的基地址;

        · offset_8>為8位立即數(shù),內(nèi)存訪問地址偏移量。

        (3)操作偽代碼

        Address = Rn

        Offset_8 = (immedH 4) OR immedL

        If conditionPassed{cond} then

        If U = = 1 then

        Rn = Rn + offset_8

        Else

        Rn = Rn – offset_8

        (4)說明

        ① 當(dāng)指令中沒有指定立即數(shù)時(shí),匯編器按“[Rn>],#0”編碼。

        ② 如果Rn被指定為程序計(jì)數(shù)器r15,指令的執(zhí)行結(jié)果不可預(yù)知。



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 合作市| 正宁县| 桂平市| 财经| 福贡县| 宿州市| 凤山市| 临泉县| 登封市| 喀什市| 杂多县| 衡水市| 米泉市| 旅游| 织金县| 潜江市| 泌阳县| 七台河市| 垣曲县| 曲麻莱县| 屏山县| 淮安市| 平凉市| 绍兴市| 伊吾县| 开封市| 苗栗市| 滨海县| 奉节县| 棋牌| 宿州市| 梁平县| 抚宁县| 明水县| 湟中县| 三江| 和顺县| 嵊泗县| 舟山市| 沈阳市| 松原市|