返回信息流我不分段,上来就写代码,所有的地址我全用32位全地址,这样就不用分段这个机制了?
在汇编中,保护模式下。如果我给出一个32位的全地址,这样应该会被处理为线性地址吧,这样说跳过了分段这个机制?
[em18]谢谢指教
这是一条镜像帖。来源:北邮人论坛 / soft-design / #28737同步于 2008/8/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
【求助】初学汇编,问题比较弱智,关于x86分段
bupthu
2008/8/7镜像同步22 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
你可以这样认为,并在这个基础上去写代码。
但实际并非如此,cpu还是会根据段找到段基地址,再加上偏移得到虚拟地址,再转成
物理地址。只是你常用的段,如代码段,数据段,其段基地址在GDT中都是0,界限都是
4G,所以就是所谓的“平坦段”,对开发者来说,就好像段已经不复存在。
所以,可以认为段不存在了,你写什么地址,结果就会访问什么地址。
但这也不是绝对的,有一个特别的段其段基地址不是0,但这个段我估计你用不上。
【 在 bupthu (fox_lee) 的大作中提到: 】
: 我不分段,上来就写代码,所有的地址我全用32位全地址,这样就不用分段这个机制了?
: 在汇编中,保护模式下。如果我给出一个32位的全地址,这样应该会被处理为线性地址吧,这样说跳过了分段这个机制?
: [em18]谢谢指教
: ...................
wow~
赞专业的回答!
可否推荐一篇win32内存管理模式的文章?
谢谢!
【 在 flyingkisser 的大作中提到: 】
: 你可以这样认为,并在这个基础上去写代码。
: 但实际并非如此,cpu还是会根据段找到段基地址,再加上偏移得到虚拟地址,再转成
: 物理地址。只是你常用的段,如代码段,数据段,其段基地址在GDT中都是0,界限都是
: ...................
有两部分,一部分是cpu如何实现的,另一部分是windows如何利用这种机制的,
你可以先看看jiurl写的文章,信息安全版面置顶有一个书目,你可以看看。
【 在 peking2008 (2008@peking) 的大作中提到: 】
: wow~
: 赞专业的回答!
: 可否推荐一篇win32内存管理模式的文章?
: ...................
谢谢!
现在就去看看~
【 在 flyingkisser 的大作中提到: 】
: 有两部分,一部分是cpu如何实现的,另一部分是windows如何利用这种机制的,
: 你可以先看看jiurl写的文章,信息安全版面置顶有一个书目,你可以看看。
猫哥说的是28H ?
这个确实一般用不上...-v-
【 在 flyingkisser (齐天大猫) 的大作中提到: 】
: 你可以这样认为,并在这个基础上去写代码。
: 但实际并非如此,cpu还是会根据段找到段基地址,再加上偏移得到虚拟地址,再转成
: 物理地址。只是你常用的段,如代码段,数据段,其段基地址在GDT中都是0,界限都是
: ...................
我说的是windows使用fs索引的段,
好像ring3下是23h,ring0下是30h
28h这个段好像是tss32段
【 在 CNLAS (愛すべきもの) 的大作中提到: 】
: 猫哥说的是28H ?
: 这个确实一般用不上...-v-
SEH链和TEB啊...
上层做久了底下的东西都忘了...T_T
【 在 flyingkisser (齐天大猫) 的大作中提到: 】
: 我说的是windows使用fs索引的段,
: 好像ring3下是23h,ring0下是30h
: 28h这个段好像是tss32段
: ...................