CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

关于实方式和保护方式的切换的代码有些不明白,哪位大侠指点一下

楼主wangt()2006-11-01 00:20:59 在 其他开发语言 / 汇编语言 提问

gdtseg               segment                   use16  
  gdt       label   byte  
  dummy               descriptor               <>  
  code         descriptor             <0FFFFh,,,atce,>  
  code_sel=code-gdt  
  ;代码段codekseg的描述符  
  codek               descriptor               <0FFFFh,,,atce,>  
  codek_sel=codek-gdt  
  normal               descriptor               <0FFFFh,,,atdw,>  
  normal_sel=normal-gdt  
  ldtable               descriptor               <0FFFFh,,,atldt,>  
  ldt_sel=ldtable-gdt  
  gdtlen=$-gdt  
  这段代码中的code_sel=code-gdt是什么意思,是他们的地址相减,还是他们的值相减,应该怎么理解  
  还有gdtlen=$-gdt中的$是什么意思呢,希望大家多多帮忙!!! 问题点数:50、回复次数:8Top

1 楼mydo(侯佩|hopy|ks)回复于 2006-11-01 09:09:13 得分 25

1   code_sel=code-gdt   取得   code_sel(代码段选择子)在gdt中的索引  
   
  2   gdtlen=$-gdt中的$   取得   gdt   的长度,$就是此时的内存地址Top

2 楼wangt()回复于 2006-11-01 15:37:09 得分 0

mydo你能说说code_sel=code-gdt是按照地址相减还是值相减吗?Top

3 楼mydo(侯佩|hopy|ks)回复于 2006-11-01 15:38:51 得分 0

当然是地址相减Top

4 楼wangt()回复于 2006-11-01 22:07:22 得分 0

那么他们的地址相减应该是8,他们相差8个byte,可是索引应该是1吧,mydo能详细的说说吗?感激不尽Top

5 楼hwman(药师)回复于 2006-11-01 22:13:33 得分 25

索引都是8的倍数。因为段选择子低三位不是索引Top

6 楼wangt()回复于 2006-11-01 22:56:38 得分 0

hwman你好,请问code_sel应该是什么类型的呢??Top

7 楼hwman(药师)回复于 2006-11-01 23:50:49 得分 0

常数类型吧,不是很确定Top

8 楼mydo(侯佩|hopy|ks)回复于 2006-11-02 09:19:32 得分 0

yes   你自己都说了,他们相减的结果是8转成2进制数就是:  
   
  0000   0000   0000   1   000  
   
  而选择子结构明确指出:  
   
  BIT2       BIT1   BIT0    
    TI               RPL    
   
  所以他的索引就是GDT中的第一个描述符  
   
   
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:wangt
  • mydo
  • hwman

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo