新聞中心

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

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

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

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

        11.5.9有符號字節數據加載指令LDRSB

        (1)編碼格式

        有符號字節數據加載指令LDRSB的編碼格式如圖11.50所示。

        圖11.50LDRSB指令的編碼格式

        LDRSB指令用于從內存中將一個8位的字節數據讀取到指令中的目標寄存器中,并將寄存器的高24位設置成該字節數據的符號位的值(即將該8位字節數據進行符號位擴展,生成32位字數據)。

        (2)指令的語法格式

        LDRSBRd>,[Rn>,Rm>]

        ①Rd>

        目的寄存器。

        ②Rn>

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

        ③Rm>

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

        (3)指令操作的偽代碼

        address=Rn+Rm

        Rd=SignExtend(Memory[address,1])

        (4)對應的指令

        LDRSBRd>,[Rn>,Rm>]

        11.5.10有符號半字數據加載指令LDRSH

        (1)編碼格式

        有符號字節數據加載指令LDRSH的編碼格式如圖11.51所示。

        圖11.51LDRSH指令的編碼格式

        LDRSH指令用于從內存中將一個16位的半字數據讀取到指令中的目標寄存器中,并將寄存器的高16位設置成該半字數據的符號位的值(即將該16位半字數據進行符號位擴展,生成32位字數據)。

        (2)指令的語法格式

        LDRBHRd>,[Rn>,Rm>]

        ①Rd>

        目的寄存器。

        ②Rn>

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

        ③Rm>

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

        (3)指令操作的偽代碼

        address=Rn+Rm

        ifaddress[0]==0

        data=memory[address,2]

        else

        data=UNPREDICTABLE

        Rd=SignExtend[data]

        (4)對應的指令

        LDRSHRd>,[Rn>,Rm>]



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 赫章县| 阳信县| 宜宾县| 金坛市| 海淀区| 安国市| 宁海县| 延边| 万载县| 石河子市| 东方市| 农安县| 浪卡子县| 永年县| 邹平县| 东光县| 包头市| 安仁县| 馆陶县| 昌江| 旬阳县| 安岳县| 阳谷县| 大竹县| 偃师市| 浦江县| 繁昌县| 宣城市| 土默特左旗| 分宜县| 新平| 台东县| 辰溪县| 承德市| 荆门市| 赞皇县| 高要市| 沁源县| 上高县| 深圳市| 榆林市|