新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Thumb指令集之: 單寄存器數據傳送指令

        Thumb指令集之: 單寄存器數據傳送指令

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

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

        11.5.3LDR(3)

        (1)編碼格式

        LDR(3)的編碼格式如圖11.44所示。

        圖11.44LDR(3)指令的編碼格式

        LDR(3)允許將一個32位內存數據裝載到通用寄存器。此種形式的LDR指令常被用于訪問PC相關(PC-relative)數據。

        (2)指令的語法格式

        LDRRd>,[PC,#immed_8>*4]

        ①Rd>

        目的寄存器。

        ②PC

        程序指針寄存器,用于計算內存訪問的地址。計算地址時,PC值的bit[1]被系統默認為0進行計算,所以產生的內存訪問地址必為字對齊。

        ③immed_8>

        8位立即數。該立即數的4倍將和PC值相加,形成內存訪問地址。

        (3)指令操作的偽代碼

        Address=(PC[31:2]2)+(immed_8*4)

        Rd=Memory[address,4]

        (4)對應的指令

        LDRRd>,[PC,#immed_8>*4]

        11.5.4寄存器裝載指令LDR(4)

        (1)編碼格式

        寄存器裝載指令LDR(4)的編碼格式如圖11.45所示。

        圖11.45LDR(4)指令的編碼格式

        寄存器裝載指令LDR(4)允許將一個32位內存數據裝載到通用寄存器。此種形式的LDR指令常被用于訪問堆棧數據。

        (2)指令的語法格式

        LDRRd>,SP,#immed_8>*4]

        ①Rd>

        目的寄存器。

        ②SP

        堆棧指針寄存器,用于計算內存訪問地址。

        ③immed_8>

        8位立即數。該立即數的4倍將和SP值相加,形成內存訪問地址。

        (3)指令操作的偽代碼

        Address=SP+(immed_8*4)

        Ifaddress[1:0]==0b00

        Data=memory[address,4]

        Else

        Data=UNPREDICTABLE

        Rd=data

        (4)對應的指令

        LDRRd>,[SP,#immed_8>*4]



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 周口市| 嵩明县| 平和县| 云龙县| 麟游县| 黎川县| 宽甸| 望江县| 枣强县| 太仓市| 四平市| 霞浦县| 湘阴县| 壤塘县| 衡南县| 洛扎县| 泸定县| 桐柏县| 大足县| 瑞安市| 乌兰察布市| 葵青区| 博客| 北辰区| 五华县| 金平| 昭觉县| 赣榆县| 浠水县| 磐石市| 韶山市| 芷江| 临湘市| 黄陵县| 冀州市| 安溪县| 长兴县| 芜湖市| 高唐县| 安阳市| 上杭县|