gpt4 book ai didi

stack - 我可以为递增堆栈的增长方向配置ARM处理器吗?

转载 作者:行者123 更新时间:2023-12-04 18:17:20 25 4
gpt4 key购买 nike

这里有一个问题讨论了堆栈增长的方向。 Michael Burr回答时说可以在ARM处理器中配置堆栈的增长方向-即,内存中的降序(正常行为)堆栈向零地址(低地址)增长或向上扩展,即堆栈向内存中的高地址增长。

What is the direction of stack growth in most modern systems?

我的问题是:在ARM处理器中,如何使堆栈朝上升方向增长?

如何将堆栈配置为默认升序(升序)?任何寄存器位的设置/复位等

最佳答案

嗯,ARM处理器不能直接维护堆栈,但是它们确实具有针对这些指令而设计的指令:LDM和STM。因此,如果您在函数的开头使用STMDB,而在结尾使用LDMIA,则实际上将拥有一个完整的+递减堆栈:我记得使用的汇编器允许您编写“STMFD”和“LDMFD”作为别名。 (“完整”堆栈是指堆栈指针指向堆栈上的最新单词,而不是下一个要使用的位置的堆栈)

因此,这不是您可以在运行时简单地重新配置的内容:尽管如果您使用自己的调用约定编写自己的操作系统,则可以选择使用升序堆栈。同样,您也可以选择不使用R13作为堆栈指针-这也只是调用约定的一部分。该选择有效地嵌入到使用堆栈的每个函数的实现中。

关于stack - 我可以为递增堆栈的增长方向配置ARM处理器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/906443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com