新聞中心

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

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

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

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

        11.5.7半字加載指令LDRH(1)

        (1)編碼格式

        半字數據加載指令LDRH(1)的編碼格式如圖11.48所示。

        圖11.48LDRH(1)指令的編碼格式

        LDRH(1)半字數據加載指令用于從內存中將一個16位的半字數據讀取到指令中的目標寄存器中,并將寄存器的高16位清零。常用于結構體的數據訪問。域的基地址放在Rn寄存器中。

        (2)指令的語法格式

        LDRHRd>,[Rn>,#immed_5>*2]

        ①Rd>

        目的寄存器。

        ②Rn>

        指令的基址寄存器。

        ③immed_5>

        5位立即數。該寄存器數值的2倍將與Rn>寄存器中的數值相加,形成內存訪問地址。

        (3)指令操作的偽代碼

        address=Rn+(immed_5*2)

        ifaddress[0]==0

        data=Memory[address,2]

        else

        data=UNPREDICTABLE

        Rd=data

        (4)對應的指令

        LDRHRd>,[Rn>,#immed_5>*2]

        11.5.8半字數據加載指令LDRH(2)

        (1)編碼格式

        半字數據加載指令LDRH(2)的編碼格式如圖11.49所示。

        LDRH(2)字節數據加載指令用于從內存中將一個16位的半字數據讀取到指令中的目標寄存器中,并將寄存器的高16位清零。此種形式的LDRH(2)指令常用于數組元素的訪問。

        圖11.49LDRH(2)指令的編碼格式

        (2)指令的語法格式

        LDRBRd>,[Rn>,Rm>]

        ①Rd>

        目的寄存器。

        ②Rn>

        此寄存器存放內存訪問基地址。

        ③Rm>

        此寄存器存放內存訪問偏移地址。

        (3)指令操作的偽代碼

        address=Rn+Rm

        ifaddress[0]==0

        data=memory[address,2]

        else

        data=UNPREDICTABLE

        Rd=data

        (4)對應的指令

        LDRHRd>,[Rn>,Rm>]



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西充县| 乌拉特中旗| 中西区| 华亭县| 甘南县| 甘肃省| 扎赉特旗| 德令哈市| 固始县| 房产| 平昌县| 景谷| 祁阳县| 德令哈市| 北川| 永济市| 谷城县| 龙门县| 临沧市| 沙坪坝区| 扶余县| 门头沟区| 敦化市| 桃源县| 常宁市| 瑞金市| 宁夏| 图木舒克市| 海城市| 巩义市| 威海市| 鹤岗市| 施秉县| 上犹县| 杭锦后旗| 黄梅县| 西安市| 苏尼特右旗| 徐闻县| 额尔古纳市| 大姚县|