马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
数据存取指令 1.
Thumb单寄存器数据存取指令 Thumb单存储器数据存取指令LDR和STR是从存储器中取值放到一个寄存器中,或把一个寄存器存储袋存储器中。在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位,基址为PC和SP 注意事项 在前3种格式中,Rn为基址寄存器,加上偏移量形成操作数的地址。 不支持负偏移,#off5和off8分别表示5位和8位的立即数偏移。在所有情况下,汇编格式用字节表示偏移。在指令二进制编码中的5位和8位偏移需要根据存取的数据类型进行比例调整。 与ARM指令相同,只有Load指令支持有符号数。对于存储指令,有符号和无符号存储有相同的结果。 这些指令只能访问R0~R7. PC、SP的相对偏移仅适用于字,地址必须为4的倍数,最大立即数偏移为1020,立即数不允许为负数,且STR没有PC相对偏移。 读字节指令不支持自动变址。 凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网 |