对于一个段描述符,为什么说栈段的段界限的值加一,就是段内偏移量的最小值?

2023-02-02 21:29:46 +08:00
 amiwrong123

对于堆栈段来说,段界限的值加一,就是段内偏移量的最小值。——《从实模式到保护模式》

这句话我有点不理解,比如线性基地址是 0 ,段界限为 90 ,粒度为 1 字节,且 ESP 初始值为 100 ,那么实际上栈的有效范围就是[91,100]吗?还是应该是[90,99]? (这是一个闭区间)(因为栈是向下拓展的,感觉一下子有点想不明白了)

另外还有一点,书中曾经描述过,执行 push pop 时,要么压入字,要么压入双字。也就是说,要么加减 2 ,要么加减 4 。那这句“段界限的值加一,就是段内偏移量的最小值”,不应该是至少是“段界限的值加二”吗?

393 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/912707

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX