我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 栈地址 >

windows下的栈在哪

归档日期:07-20       文本归类:栈地址      文章编辑:爱尚语录

  百度知道电脑/网络操作系统/系统故障Windows

  在DOS的16位时代,栈的寻址用的是两个寄存器,SS和SP,好像用SS*16+SP来定位堆栈但在windows时候,或者说是win32时候,或者说是保护模式时候,栈段是放在哪儿了呀,还是用的SS和SP来配合使用...

  在DOS的16位时代,栈的寻址用的是两个寄存器,SS和SP,好像用SS*16+SP来定位堆栈

  但在windows时候,或者说是win32时候,或者说是保护模式时候,栈段是放在哪儿了呀,还是用的SS和SP来配合使用吗?展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  保护模式下 分段机制是利用一个称作段选择符的偏移量,从而到描述符表找到需要的段描述符,而这个段描述符中就存放着真正的段的物理首地址,再加上偏移量

  我们现在可以这样来理解这段话: 有一个结构体类型,它有三个成员变量:段物理首地址 段界限 段属性

  内存中,维护一个该结构体类型的是一个数组。而分段机制就是利用一个索引,找到该数组对应的结构体,从而得到段的物理首地址,然后加上偏移量,得到真正的物理地址。

  其中,xxxx也就是索引,yyyyyyyy是偏移量(因为32位寄存器,所以8个16进制)xxxx存放在段寄存器中。

  现在,我们来到过来分析一下那三个新名词。段描述符,一个结构体,它有三个成员变量:1、段物理首地址 2、段界限 3、段属性

  我们再来重温一遍 描述符表,也就是一个数组,什么样的数组呢?是一个段描述符组成的数组。

  接下来看看段选择子:段选择子,也就是数组的索引,但这时候的索引不在是高级语言中数组的下标,而是我们将要找的那个段描述符相对于数组首地址(也就是全局描述表的首地址)偏移位置。更多追问追答追问我问的是栈段在哪,你除了第一句在点上,后边说的那些与我问的一点都不沾边呀追答怎么不沾边了

  只是一个索引,在段描述表中在索引, 通过索引去获取一个结构:段物理首地址 段界限 段属性追问那是不是栈段也是放在那个结构体类型中,通过段选择子在段描述表中国查找,那ESP又有什么用呢?追答段选择子 中不仅有物理地址 还有内存访问权限 一般不会修改

  32位ESP寄存器 可以寻址4G 已经可以寻址任何地址了追问那栈段到底放在哪呀追答重要在你要明白一点

  所以在保护模式下 所有在段寄存器不能改变物理地址,因为会访问到别的程序在内存空间

本文链接:http://apawoodbury.com/zhandizhi/312.html