|
|
|
|
移动端

1.5.3 内存寻址模式

《ARM嵌入式系统编程与优化》第1章Linux/ARM嵌入式平台,本章介绍如何使用GCC编译器、汇编器和连接器来编写和执行独立的汇编语言程序,以及如何将一个C语言代码和汇编语言代码合起来,以验证汇编代码子程序的正确性。本节为大家介绍内存寻址模式。

作者:梁元宇 译来源:机械工业出版社|2017-09-26 19:04

【新品产上线啦】51CTO播客,随时随地,碎片化学习

1.5.3 内存寻址模式

像其他的加载/存储架构一样,ARM只有唯一的访问片外存储器的加载和存储指令。对于加载和存储指令,有多种寻址模式,或由程序员或编译器指定的片外存储地址寻址方式。

接下来开始检查加载和存储指令的格式。

对于加载指令,需要在ldr指令助记符后依次输入目标寄存器和存储地址:

对于存储指令,需要在str指令助记符后依次输入源寄存器和存储地址:

值得注意的是,与大多数指令不同,存储指令中的目标位置(存储地址)是第二位的。

ldr和str指令也可以通过在存储器中使用一个可选的类型修饰来交换非32位值(如字节、半字):

ldrd/strd 加载/存储双精度浮点型(64位)

ldrsh  加载有符号半字(16位)

ldrh/strh 加载/存储半字(16位)

ldrsb  加载有符号字节(8位)

ldrs/strb 加载/存储字节(8位)

加载和存储指令也可以是有条件的。例如,ldreq仅在z标记被设置的情况下加载。

方括号中的寄存器用的是指定的存储地址。一个可选的常数偏移量、索引寄存器和缩放因子可以指定。ARM还支持自增寄存器。

表1-2总结了ARM内存寻址模式。

表1-2 ARM内存寻址模式


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员必读——网络组建

本书以一个模拟局域网组建为思路,介绍了与局域网组建各主要方面相关的知识及组建、配置方法。本书所介绍的内容主要包括:局域网组建规划、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊