秒懂 堆栈寻址 STMFA STMFD LDMFA LDMED( ARM中的汇编指令)

走过路过的朋友不要错过,看一看点个赞,如果评论更喜欢。😁

堆栈寻址

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

堆栈是一种按特定顺序进行存取的存储区。这种特定的顺序可归结为“后进先 岀(LIFO)”或“先进后出(FILO)”。堆栈寻址是隐含的,它使用一个专门的寄存器 (堆栈指针)指向一块存储器区域(堆栈)。栈指针所指定的存储单元就是堆栈的栈顶

存储器堆栈可分为两种:
① 向上生长:即向高地址方向生长,称为递增堆栈(ascending stack)
② 向下生长:即向低地址方向生长,称为递减堆栈(descending stack)

堆栈指针指向最后压入堆栈的有效数据项,称为满堆栈(full stack)
堆栈指针 指向下一个数据项放入的空位置,称为空堆栈(empty stack)

这样就有4种类型的堆栈表示递增和递减的满和空堆栈的各种组合。ARM处 理器支持所有这4种类型的堆栈。

满递增,堆栈通过増大存储器的地址向上增长,堆栈指针指向内含有效数据 项的最高地址。
空递増:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈上的第一 个空位置。
满递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有效数据 项的最低地址。
空递减

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值