不,在 MIPS 或 RISC V 中,对于普通函数调用和返回来说,帧指针并不是严格必需的。
\n但是,如果您想支持堆栈展开,它会很有帮助,尽管在其他一些环境中,静态数据提供了堆栈展开所需的信息,而无需在运行时使用帧指针。
\n如果您希望能够抛出和捕获异常,通常需要堆栈展开,具体取决于语言。
\n一些教授 MIPS 或 RISC V 的讲师希望您学习帧指针概念,因为它通常在 x86 \xe2\x80\x94 上使用,但是,由于指令集的特殊性,在 x86 上有时会使用帧指针。\xc2\ xa0 即,频繁的压入和弹出操作使得堆栈相对于移动的堆栈指针(与不移动的帧指针相比)更难跟踪,并且指令集默认两个寄存器来使用堆栈段寄存器,即帧指针和栈指针寄存器,而原来的x86也没有sp+偏移量寻址,只有bp(帧指针)+偏移量。
\n因此,出于上述所有原因,一些 MIPS 和 RISC V 教学材料教授帧指针概念。
\n| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |