gpt4 book ai didi

arm - 为什么 Cortex-M 需要它的第一个字作为初始堆栈指针?

转载 作者:行者123 更新时间:2023-12-02 04:21:12 24 4
gpt4 key购买 nike

假设我正在编写一个根本不使用堆栈的汇编语言程序。

为什么 Cortex-M 要求堆栈指针?即使我不使用它,CPU 会用这个堆栈指针做什么(CPU 是否需要 SP 才能运行?我不认为 SP 是 CPU 运行所必需的。)?

对于我来说,将要执行的第一条指令或程序开始的地址放在第一个地址是有意义的。

最佳答案

CPU 在技术上不需要堆栈指针来运行。但是,它确实需要堆栈指针才能正确处理中断和异常。它在服务中断之前将某些信息放在堆栈上,以便系统状态可以在中断后恢复。理论上您可能会在启动后的第一条指令中遇到异常,因此需要在开始执行之前设置 SP。

另外,你对向量表熟悉吗?通常,处理器中的前几个地址无论如何都是为向量表保留的。向量表包含硬件在处理中断和异常时引用的跳转地址。

关于arm - 为什么 Cortex-M 需要它的第一个字作为初始堆栈指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30340374/

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