那位大牛能详细解释下硬件堆栈和软件堆栈?
http://bbs.chinaunix.net/thread-1004929-1-1.html 中的关于硬件栈和软件的看法,就是偶的观点
原帖由 feelsmile 于 2007-10-19 16:05 发表 那位大牛能详细解释下硬件堆栈和软件堆栈?
硬件堆栈是CPU内部实现的,或说是CPU内置的。通常,栈底设在内存的高端,也就是把内存的最高一段空间划作栈区。这些都是向下生长栈。栈指针可能是专用的寄存器,也可能借用一通用寄存器。也有单片机是在数据区里划一块作栈区,可能是向上生长,也可能是向下生长。软件栈是你自己通过编码实现的。你在内存里划一块作栈区,用一个变量作栈指针。如果用汇编语言做软件栈,也可以选一个通用寄存器做栈指针。你可以做成向上,也咳做成向下生长。如果你需要两个软件栈,最好做成,在一块区域里,一个栈从高端向下生长,另一个栈从低端向上生长。FORTH语言就是有这样的两个栈。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
http://bbs.chinaunix.net/thread-1004929-1-1.html 中的关于硬件栈和软件的看法,就是偶的观点
硬件堆栈是CPU内部实现的,或说是CPU内置的。通常,栈底设在内存的高端,也就是把内存的最高一段空间划作栈区。这些都是向下生长栈。栈指针可能是专用的寄存器,也可能借用一通用寄存器。也有单片机是在数据区里划一块作栈区,可能是向上生长,也可能是向下生长。
软件栈是你自己通过编码实现的。你在内存里划一块作栈区,用一个变量作栈指针。如果用汇编语言做软件栈,也可以选一个通用寄存器做栈指针。你可以做成向上,也咳做成向下生长。如果你需要两个软件栈,最好做成,在一块区域里,一个栈从高端向下生长,另一个栈从低端向上生长。FORTH语言就是有这样的两个栈。