找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 48|回复: 0

检测点14-2

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-16 16:50:03 | 显示全部楼层 |阅读模式
检测点14.2

当前栈段描述符的B位是1,基地址为0x00700000,界限值为0xFFFFE。那么,在32位模式下,该栈段的有效地址范围是0x00700000~(0x007FFFFE)。当ESP的内容为0xFFFFF002时,还能压入一个双字吗?为什么?
说明:如果粒度G是1,则实际使用的段界限的最小值是FFFFEFFF,最大值是FFFFFFFF,所有这个栈段的有效地址范围是006FEFFF~006FFFFF。既然题目中指定了初始地址0x00700000,则表明粒度G是0,题目中给出的界限值就是实际使用的界限值。
当ESP的内容是0xFFFFF002时,显而易见是超过实际实际使用的段界限范围之外的,不能压入。
---------------------------------------------------------------------------
下一版改进:
当前栈段描述符的B位和G位都是1,基地址为0x00700000,界限值为0xFFFFE。那么,在32位模式下,该栈段的地址范围是什么?。当ESP的内容为0xFFFFF002时,还能压入一个双字吗?为什么?
答案:
实际使用的段界限的最小值是FFFFEFFF,最大值是FFFFFFFF,所有这个栈段的地址范围是006FEFFF~006FFFFF。
当ESP的内容为0xFFFFF002时,压入双字,要先将ESP的值减去4,结果是FFFFEFFE,不在实际使用的段界限范围内,不能压入。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-3-30 18:14 , Processed in 0.254191 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表