在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 4229|回复: 1

[资料] Load/Store指令汇编格式

[复制链接]
发表于 2015-12-31 15:04:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

说明

这些指令与上面的字和无符号字节的指令形式类似,不同之处在于,在这些指令中立即数偏移量限定在8位,寄存器偏移量也不可经过移位得到。

在图中,P、U、W、和L位的作用与单字和无符号字节数据传送指令的二进制编码图中的P、U、W和L位的作用相同。S和H位用来定义所传送的操作数的类型,如图所列

注意:这些位的第4种组合在这种格式中没有使用,它对应于无符号字节的数据类型。

无符号字节的传送应使用上面的格式。因为在存入有符号数据和无符号数据间没有差别,这条指令唯一的相关形式是:

读取有符号字节、有符号半字或无符号半字。

存入有符号字节、有符号半字或无符号半字。

无符号数在读取时用0扩展到32位;有符号数读取时则用其符号扩展到32位。

汇编格式

前变址格式为:

LDR|STR{<cond>}H|SH|SBRd, [Rn.<offset>]{!}

后变址格式为:

LDR|STR{<cond>}H|SH|SBRd, [Rn.<offset>]

式中,<offset>是#±<8位立即数>或#±Rm;H|SH|SB选择传送数据类型;其他部分的汇编格式与传送字和无符号字节相同。

举例

LDREQSH     R11,[R6];(有条件地)R11<-[R6],加载16位半字,有符号扩展到32位。

LDRH        R1,[R0,#20]; R1<-[R0+R2],加载16位半字,零扩展到32位。

STRH        R4,[R3,R2]!; R4<-[R3+R2],存储最低的有效半字到R3+R2


;地址开始的2个字节,地址写回到R3

LDRSB       R0,constf;加载位于标号constf地址的字节,有符号扩展

LDRH        R6,[R2],#2;将R2地址上的半字数据读出到R6,高16位用


;令扩展R2=R2+2

LDRSH       R1,[R9];将R9地址上的半字数据读出到R1,高16位用符号位扩展

STRH        R0,[R1,R2,LSL#2];将R0的内容送到(R1+R2×4)对应的内存中

STRNEH      R0,[R2,#960]!;(有条件的)将R0的内容送到(R2+960)的内存中R2+960

注意事项

与前面所讲的字和无符号字节传送指令的情况相同,对使用R15和寄存器操作数也有一定的限制。

所有半字传送应使用半字对齐的地址。

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

发表于 2018-12-20 19:54:18 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-6-12 18:03 , Processed in 0.028248 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表