为什么很多书上这样定义全局描述符表GDT

zxm0591 2012-06-05 04:08:25
我看了些资料,发现很多这样写
DSEG SEGMENT USE16 ;16位段
GDT LABEL BYTE ;全局描述符表
DUMMY DESCRIPTOR<> ;空描述符
CODE32_SEL = 08H ;代码段选择符
CODE32 DESCRIPTOR <> ;代码段描述符

;...
DSEG ENDS


为什么把段选择符写在GDT里面啊,
...全文
201 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fortitan 2012-06-18
  • 打赏
  • 举报
回复
你既然直接写出值来了写那都行。
选择符是对应描述符偏移值,一般都跟前面好取偏移。比如
选择符A = $ - GDT开头
<描述符A>
选择符B = $ - GDT开头
<描述符B>
yh_no_code 2012-06-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
我看了些资料,发现很多这样写
DSEG SEGMENT USE16 ;16位段
GDT LABEL BYTE ;全局描述符表
DUMMY DESCRIPTOR<> ;空描述符
CODE32_SEL = 08H ;代码段选择符
CODE32 ……
[/Quote]

要区分哪些代码会产生实际的代码,哪些不会产生,那个就相当于C语言里的#define定义的一个宏一样,编译不产生代码
kinuxroot 2012-06-10
  • 打赏
  • 举报
回复
=不是定义一个宏么……这个东西汇编时代表一个常量,不会最终实际存储在生成的文件中的……也就是最后的GDT是不会有这么一个数据的。
WJN92 2012-06-05
  • 打赏
  • 举报
回复
这个可能只是一个结构而已
保存相关信息

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧