永发信息网

win32汇编中段寄存器还有什么用处?

答案:3  悬赏:40  手机版
解决时间 2021-03-01 23:29
win32汇编中的段寄存器(段选择器)还有什么用?在汇编的时候只是所有的段都是flat 平坦模式,可以访问全部的4GB空间,我看到说32位汇编里面段寄存器的作用是段描述符,可以指定段的属性等,可是在汇编的时候所用的段只是数据和代码的分类段,并不是段选择器所指的段,访问写入属性也是由分类后的内存页指定的,根本就不是段描述符的属性,在汇编和反汇编的时候根本用不到段寄存器。而且我反汇编的时候看到,段选择器只用到了8位,前面两位是00,后面两位才是索引。有没有人能帮我具体解释解释啊。有没有好点的32位汇编反汇编的论坛啊?我在这问汇编的问题从来就没有解决过。
最佳答案
段寄存器指的是cs,ds,ss,es,fs,gs这些。在win32保护模式下,他们指向各自的描述符。那些描述符,都指向同一个段起始地址(fs除外)。所以win32编程,不需要制定cs,ds,ss等等,因为他们都是一样的。可以认为ds=es=ss=...这就是flat的含义。在编程者看来,各个段都是平坦的,一样的,没有区别。

至于数据代码的访问属性,那是在PE文件的节里面定义的。PE文件在加载的时候,文件从磁盘映射到内存之后,会根据节的属性来修改相应内存的访问属性。这个属性跟cs,ds等等没有任何关系
.text .code之类,实际上定义的是节(英文:section),跟段(英文:segment)是2个不同的概念。
推荐去bbs.pediy.com看看那里的精华帖
希望能对你有帮助
全部回答
win32里段寄存器里存放的是段选择子, 作用也是带定址的, 与实模式相比,段选择子代替了原来的段基址。从本质上来讲,段选择子最终还是要转化成段基址 段选择子长16位,其格式如上图所示。从图中可见,段选择子的高13位是描述符的索引值。所谓描述符索引是指描述符在描述符表中的序号。由于描述符总是8个字节的,所以将描述符索引值逻辑左移3位即可得到对应描述符在描述符表中的偏移地址,再加上描述符表起始地址就可以确定描述符的位置,这算是一个小技巧。段段选择子的第2位是引用描述符表指示位,标记为ti(table indicator),ti=0表示该选择子指示的是全局描述符表gdt中的描述符,ti=1表示该选择子指示的是局部描述符表ldt中的描述符。第0和第1位称为rpl(request privilege level请求特权级),用于特权级控制,在上一个问题中有详细描述。通过段选择子,我们可以从gdt或ldt中找到需要的段描述符,段描述符中存储着目标段的基址(起始地址),界限(段的范围)以及其他一些控制信息,由此,我们完成了段选择子到段基址的转化。
现在的操作系统使用段表寄存器,载入段的! 主要的作用就是代码保护,比如.text就是代码,这个是只读的,作为一个段,段表中段的属性为只读,这样代码就不会被修改!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有没有初一的女生
牛巴店吉林店怎么去啊,有知道地址的么
手工伸缩望远镜制作方法
绥德县基督教三自爱国运动委员会这个地址在什
婚后买车需要两人的身份证结婚证吗付全款的
怎么隐藏磁盘
2016华为普工技工的招募地点在哪?
求战地34资源
梧仗爱南门地址有知道的么?有点事想过去
若负二分之x等于三分之y等于四分之z,等于三则
TVB还会出现索尼L36h吗
女主家为了钱和男主利益结婚六年后离婚的小说
本人急用钱。3-5w. 有什么方式 三天内下款 。
成龙打的过柳海龙吗?
银豪地址在哪,我要去那里办事
推荐资讯
传祺GS4钥匙没电了应急感应区在那里
西粤南路一街在哪里啊,我有事要去这个地方
万事顺超市在什么地方啊,我要过去处理事情
该邮件地址已被注册
剑圣一族js-l1怎么设置连招
三星S7怎么设置快速拨号 三星S7快速拨号设置
AaBb和aaBb两个亲本杂交,在两对性状独立遗传
剑灵怎么变强
屯靠屯地锅王总部地址有知道的么?有点事想过
谢太傅寒雪日内集中的内集是什么意思
宏都美妆怎么去啊,有知道地址的么
梦幻西游60级装备在帮派里修理需要多少帮贡
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?