ARM-栈的种类与应用(lv9-day8)

本文详细介绍了ARM处理器中的栈操作,包括多寄存器内存访问指令如STM和LDM,以及自动索引寻址方式STMIA、STMIB、STMDA和STMDB。内容涵盖栈的分类和在子叶函数、非子叶函数调用中的应用,强调了栈在保存函数参数、返回值和程序跳转时的作用。栈指针R13在存储栈中的关键作用也得到了阐述。
摘要由CSDN通过智能技术生成

ARM-栈的种类与应用(lv9-day8)

1 多寄存器内存访问指令

1.1 写内存 STM 寄存器,{寄存器-寄存器}

MOV R1,#1
MOV R2,#2
MOV R3,#3
MOV R1,#4
MOV R11,#0X40000020
@将R1-R4寄存器中的数据储存到以R11为起始地址的内存中
STM R11 ,{R1-R4}

1.2 读内存 LDM 寄存器,{寄存器-寄存器}

MOV R1,#1
MOV R2,#2
MOV R3,#3
MOV R1,#4
MOV R11,#0X40000020
@将以R11为起始地址的内存中的数据读到R6-R4寄存器中
LDM R11 ,{R6-R9}

注:当寄存器不连续时 使用逗号分隔。
不管寄存器列表的顺序如何,储存永远是低地址存储小编号的寄存器。
自动索引同样适用于多寄存器内存访问指令。
STM R11!, {R1-R4}
加上!后存多少个字节R11 在写完数据后就自增多少个字节(这里是自增16个字节)
在这里插入图片描述

2 多寄存器内存访问指令的寻址方式

这里重点掌握自动索引

2.1 STMIA

先写数据,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值