我对 x86 和 MIPS 上的内存寻址有疑问。现在我在学校上计算机组织课,遇到了麻烦,因为教授的解释对我来说不是很清楚。我对内存寻址的了解如下。
内存(堆栈)地址从上到下开始,esp(堆栈指针)指向具有最高内存的堆栈内存的顶部。每当在堆栈上分配内存时,ebp(基本指针)就会下降并分配内存。
我理解对了吗??我一直在寻找一个清晰而有条理的解释,但是有很多资源的说法不同。在这篇文章中,解释与我对记忆的了解相反。我需要帮助!!谢谢
我对 x86 和 MIPS 上的内存寻址有疑问。现在我在学校上计算机组织课,遇到了麻烦,因为教授的解释对我来说不是很清楚。我对内存寻址的了解如下。
内存(堆栈)地址从上到下开始,esp(堆栈指针)指向具有最高内存的堆栈内存的顶部。每当在堆栈上分配内存时,ebp(基本指针)就会下降并分配内存。
我理解对了吗??我一直在寻找一个清晰而有条理的解释,但是有很多资源的说法不同。在这篇文章中,解释与我对记忆的了解相反。我需要帮助!!谢谢
不同架构的堆栈可能采用不同的方式,由该架构的 ABI 决定。看看这个链接
如果您专门指的是 MIPS 或 x86,那么是的,堆栈指针确实从高地址到低地址。(并且它遵循 LIFO,所以最后出现的东西首先被删除)。
不管它是从上到下还是从上到下(查看倒置堆栈或非倒置堆栈),重要的是堆栈从具有较高值的地址到具有较低值的地址(如您提供的链接)