凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

数据存取指令

已有 238 次阅读| 2016-1-15 18:29

1.       Thumb单寄存器数据存取指令

Thumb单存储器数据存取指令LDRSTR是从存储器中取值放到一个寄存器中,或把一个寄存器存储袋存储器中。在Thumb状态下,这些指令只能访问低寄存器R0~R7.

二进制编码

Thumb单寄存器数据存取指令的二进制编码如图所示

说明

这些指令是从ARM单寄存器存取指令中精心导出的子集,并且与等价的ARM指令有严格相同的语义。在所有指令中,偏移量需要根据数据类型按比例调整。

汇编格式

各种汇编格式为:

<op>Rd,[Rn,#<#off5>]  ;<op>=LDR|LDRB|STR|STRB

<op>Rd,[Rn,#<#off5>]  ;<op>= LDRH|STRH

<op>Rd,[Rn,Rm]          ;<op>=LDR|LDRH|LDRSH|LDRB|LDRSB|

<op>Rd,[Rn,#<#off8>]                STR|STRH|STRB

<op>Rd,[Rn,#<#off8>]  ;<op>=LDR| STR//2条指令偏移量为8位,基址为PCSP

注意事项

在前3种格式中,Rn为基址寄存器,加上偏移量形成操作数的地址。

不支持负偏移,#off5off8分别表示5位和8位的立即数偏移。在所有情况下,汇编格式用字节表示偏移。在指令二进制编码中的5位和8位偏移需要根据存取的数据类型进行比例调整。

ARM指令相同,只有Load指令支持有符号数。对于存储指令,有符号和无符号存储有相同的结果。

这些指令只能访问R0~R7.

PCSP的相对偏移仅适用于字,地址必须为4的倍数,最大立即数偏移为1 020,立即数不允许为负数,且STR没有PC相对偏移。

读字节指令不支持自动变址。

凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网

 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 20:10 , Processed in 0.013843 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部