随笔总结:8086CPU的栈顶超界问题

我们学习编程都知道栈的超界限问题是非常严重的问题,他可能会覆盖掉其他数据,并且我们不知道这个数据是我们自己保存的用于其他用途的数据还是系统的数据,这样常常容易引发一连串的问题。
在学习汇编的时候,我们熟悉的8086cpu通过ss:sp来指向栈顶指针,从而来控制入栈,出栈,入栈的时候sp = sp-2 ;出栈则是sp = sp + 2。但是我们并不知道栈的大小,栈顶和栈底在哪里?这样就容易引发超界问题。
想一想解决办法:我们是不是可以通过一个寄存器来保存栈顶和栈底的地址,这样就可以通过判定栈顶指针的地址来判定是否在这个栈的空间内,细细一想,方案的确可行,但是这并不是我们想当然的事情,而是cpu设计上的事情。
但是实际上8086cpu并没有这样的寄存器功能,这就只能我们自己进行判断了,从而来防止超界问题的出现。可能这就是8086的设计缺陷吧,无法通过系统内部机制,去控制超界问题。


__EOF__

本文作者DeepBrainBoy
本文链接https://www.cnblogs.com/tccjx/p/16155254.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   TCcjx  阅读(156)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示