1
A
回答
1
最低的地址总是保留给特殊的寄存器。选择最低值可确保无论微型版本(可变数量的RAM)如何,特殊寄存器始终位于同一位置。
通过在最顶端启动堆栈,您只需要知道一件事。顶部地址。
它可以分解两个独立的设计问题。保留的寄存器放置和堆栈原点。
+0
我建议你扩大你的答案并增加一点清晰度。 阅读完您的短语后 “最低地址始终保留给特殊寄存器”。汇编语言的新手今天问我“如何使用RAM作为寄存器”(显然你不能 - 寄存器在CPU上,STACK是RAM中的一个区域,RAM不在CPU上)。 – Ted 2014-02-22 14:08:02
相关问题
- 1. 堆栈增长和堆栈增长的方向
- 2. 为什么引用堆栈地址的ESP每次跳转4h?
- 3. 为什么栈,堆的虚拟地址每次都改变?
- 4. 堆栈为空...为什么?
- 5. 为什么堆栈低于内存中的文本?
- 6. Julia中较长的堆栈痕迹
- 7. 为什么堆栈有界?
- 8. 堆栈是否连续增长?
- 9. 英特尔堆栈增长和参考
- 10. 为什么会有堆栈和堆?
- 11. 的Windows栈和堆地址范围
- 12. 为什么函数调用而不是变量地址用于检测栈的增长方向?
- 13. 为什么堆栈通常会向下生长?
- 14. 为什么堆栈结束为空?
- 15. C++堆栈/堆栈。为什么只有一个新操作员?
- 16. 什么“堆栈无效,堆栈只支持堆栈1和堆栈5”是什么意思?
- 17. 为什么大对象堆增长而不是抛出异常?
- 18. 我们如何找到堆的最高地址和最低地址
- 19. AddressSanitizer:堆栈溢出地址错误?
- 20. 按堆栈地址查找模块
- 21. 汇编堆栈索引地址
- 22. 堆栈溢出 - 奇数返回地址
- 23. 比较和堆栈
- 24. Java堆栈比较
- 25. 在堆栈的ArrayList中,如果堆栈为空,为什么索引不正确?
- 26. 为什么堆栈弹出(而不是+
- 27. 什么是'堆栈',因为它与.Net
- 28. 堆栈和队列,为什么?
- 29. 为什么堆栈没有推动?
- 30. 为什么setjmp不能保存堆栈?
非常有趣的问题!几十年前,当堆栈首次被发明时,RAM很昂贵并且供不应求。所以堆栈设计者为了牧养有价值的RAM,向下堆放堆栈。这意味着每当有东西被推入堆栈时,就会使用越来越少的RAM。 – 2011-05-28 20:55:03
@Pete:开玩笑吧?我认为 – sehe 2011-05-28 21:17:56