带你清晰认识STR和LDR及其各种搭配

本文介绍了ARM9嵌入式系统中STR和LDR指令的作用,包括LDM和STM多数据加载与存储,以及它们在数据块传输和堆栈操作中的8种模式。通过实例解析了不同模式下地址如何增减,以及寄存器的执行顺序。建议通过实际运行验证和理解这些指令。
摘要由CSDN通过智能技术生成

有不对的地方还请多多指正,其实最好的办法是运行一下观察实验结果,后续补充图

LDM:(load much)多数据加载,将地址上的值加载到寄存器上

STM:(store much)多数据存储,将寄存器的值存到地址上

主要用途:现场保护、数据复制、参数传送等,共有8种模式(前面4种用于数据块的传输,后面4种是堆栈操作)如下:
数据块传输 其实这一块大家可以看英文全名
(1)IA:(Increase After) 每次传送后地址加4,其中的寄存器从左到右执行,例如:STMIA R0,{R1,LR} 先存R1,再存LR

(2)IB:(Increase Before)每次传送前地址加4,同上

(3)DA:(Decrease After)每次传送后地址减4,其中的寄存器从右到左执行,例如:STMDA R0,{R1,LR} 先存LR,再存R1

(4)DB:(Decrease Before)每次传送前地址减4,同上

AREA  EXP2,CODE,READONLY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值