gpt4 book ai didi

assembly - 堆叠在MIPS中。 addi $ sp,$ sp,-4中4的目的是什么?

转载 作者:行者123 更新时间:2023-12-02 03:59:13 55 4
gpt4 key购买 nike

我正在研究使用过程的MIPS代码,但无法理解堆栈(sp)和帧指针(fp)的目的。

例如,我研究的代码如下。它会在您输入的号码之前打印所有号码,例如3. 3,2,1,0,并显示它使用了多少堆栈大小。在此示例中,它使用了16。我将-4更改为-8,但出现错误。
但是,我注意到其他一些使用-8的代码。

问题是我想念什么?

proc:
addi $sp,$sp,-4 #
sw $ra,0($sp) # push $ra

最佳答案

在调用函数之前,将返回地址压入堆栈。这就是代码的作用。 -4表示通过向上移动堆栈指针在堆栈上“分配” 4个字节,以便可以写入返回地址。

上面的解释假设寄存器的正常使用。

在看到代码之前,我无法就-8所做的结论。但这可能会为函数的参数保留空间。

关于assembly - 堆叠在MIPS中。 addi $ sp,$ sp,-4中4的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11202736/

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