新聞中心

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

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

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

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

        11.5.16半字存儲指令STRH(1)

        (1)編碼格式

        半字存儲加載指令STRH(1)的編碼格式如圖11.57所示。

        圖11.57STRH(1)指令的編碼格式

        STRH(1)半字數據存儲指令用于將一個16位的半字數據寫入到指令中指定的內存單元,該半字數據為指令中存放源操作數寄存器的低16位。常用于結構體的數據訪問。域的基地址放在Rn寄存器中。

        (2)指令的語法格式

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

        ①Rd>

        目的寄存器。

        ②Rn>

        指令的基址寄存器。

        ③immed_5>

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

        (3)指令操作的偽代碼

        address=Rn+(immed_5*2)

        ifaddress[1:0]==0

        Memory[address,2]=Rd[15:0]

        Else

        Memory[address,2]=UNPREDICTABLE

        (4)對應的指令

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

        11.5.17寄存器存儲指令STRH(2)

        (1)編碼格式

        寄存器存儲指令STRH(2)的編碼格式如圖11.58所示。

        圖11.58STRH(2)指令的編碼格式

        寄存器存儲指令STRH(2)用于將一個8位的半字數據寫入到指令中指定的內存單元。此種形式的STRH指令常被用于訪問數組中的元素。

        (2)指令的語法格式

        STRHRd>,[Rn>,Rm>]

        ①Rd>

        目的寄存器。

        ②Rn>

        存放形成內存訪問地址的第一個寄存器。

        ③Rm>

        存放形成內存訪問地址的第二個寄存器。

        (3)指令操作的偽代碼

        address=Rn+Rm

        ifaddress[1:0]==0

        Memory[address,2]=Rd[15:0]

        Else

        Memory[address,2]=UNPREDICTABLE

        (4)對應的指令

        STRHRd>,[Rn>,Rm>]



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 育儿| 泰宁县| 巍山| 军事| 龙山县| 轮台县| 唐海县| 乌拉特前旗| 兰考县| 沙坪坝区| 泾川县| 宜都市| 马鞍山市| 双辽市| 台山市| 巩留县| 嘉鱼县| 阳泉市| 湛江市| 教育| 全南县| 永善县| 北安市| 西林县| 文山县| 泾源县| 景东| 高淳县| 济宁市| 紫金县| 炎陵县| 监利县| 上蔡县| 灵川县| 济阳县| 嘉善县| 德惠市| 高台县| 博爱县| 新巴尔虎右旗| 武宁县|