社区
汇编语言
帖子详情
LDT与GDT区别?
God2000
2002-02-17 07:12:13
加精
谁能说说LDT与GDT区别?
有的书上说GDT是唯一的,那是指在程序中是唯一的还是
指在整个系统中是唯一的还是别的?
那LDT又是如何?
请详细些。
...全文
1259
16
打赏
收藏
LDT与GDT区别?
谁能说说LDT与GDT区别? 有的书上说GDT是唯一的,那是指在程序中是唯一的还是 指在整个系统中是唯一的还是别的? 那LDT又是如何? 请详细些。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vBin
2002-03-17
打赏
举报
回复
强制结贴
icename
2002-03-04
打赏
举报
回复
GDT由GDTR指出,GDTR是48位指针,处理器中只有一个;
LDT由GDT中的一个描述符描述,LDTR指向这个描述符;
系统还有一个TSS段,对应一个任务,其中含有此任务的
LDT;意思就是:每个任务有一个LDT,所以,TR寄存器只能
指向一个GDT表。系统可以有多个TSS,TSS切换,TR就更新,
LDT就跟着更新,类似进程切换。多个LDT是指每个任务有
不同的LDT表,但同一时刻,只能有一个存在,或者象W2000
LDTR置空,根本不用LDT。
huaboy
2002-03-03
打赏
举报
回复
应该是 杨季文 的《80X86汇编语言程序设计教程》
wowocock
2002-03-02
打赏
举报
回复
GDT只有一个,用于存放系统的代码段,数据段,以及LDT,TSS,任务门,调用门
IDT也只有一个,用于存放任务门,中断门,陷阱门
LDT可以有多个,用于存放应用程序的代码,数据,堆栈等
当然不同的操作系统之间也有差别,可以用SOFTICE或TRW2000查看WIN9X下
发现所有程序共享LDT。
huaboy
2002-03-02
打赏
举报
回复
我觉得hibernate(红叶)说的对。推荐看 周明得 的《80X86汇编语言程序设计》(清华的)里面讲的很详细。我正看呢,国人在1994年翻译的一本关于Intel Architecture Software Developer’s Manual的书《80386/80486编程》,翻的很不好,且知识不连贯。
mathe
2002-03-02
打赏
举报
回复
一个进程可以有很多线程,TSS应该是对应于线程的。用户进程不能自己在不同的线程之间切换,但是操作系统会将代码在不同的线程间进行切换。
shen630
2002-03-01
打赏
举报
回复
关注
wylpro
2002-02-24
打赏
举报
回复
lldt 这只在系统级才可以用,
LDT 的目的是把一个进程的所有段都放进一个LDT中(LDT本身不止一个),以防止进程间互相影响,如果进程本身有多个LDT进程不是要能够转换LDT?那不就可以转到别人的LDT上来影响别的进程?还要LDT干吗?
snowingedge
2002-02-20
打赏
举报
回复
我不觉得红叶有误。应该说GDT是全局的,LDT是局部的。但是某一个时刻,一个进程只对应一个LDT.(虽然可以有多个LDT,但是只有一个在使用)
vBin
2002-02-20
打赏
举报
回复
赞同。
awinder
2002-02-20
打赏
举报
回复
RIGHT!
hibernate
2002-02-20
打赏
举报
回复
我好象没有理解错吧。
LDT一般存储的是用户进程代码段,数据段,堆栈段及TSS描述符。如果一个进程可以有很多LDT的话,那么就是说用户进程也可以自己在内部进行任务切换了?这个权力只有操作系统内核才有吧?而且在每一个进程的TSS中存有该进程的LDT,在进程运行当中应该是不能改变的。
正确的说法应该是:GDT是系统中唯一的,一个系统中可以有许多LDT,LDT的Descripotr是存储在GDT中的,而LDT中存储的是每一个进程的局部数据。
predrose
2002-02-20
打赏
举报
回复
Hardware是只有一个LDTR(16 bits of Register),而不是只有一个LDT,一个PROCESS可以有多个LDT,但要用lldt指令switch或用tss,红叶理解有误。
predrose
2002-02-20
打赏
举报
回复
Hardware是只有一个LDTR(16 bits of Register),而不是只有一个LDT,一个PROCESS可以有多个LDT,但要用lldt指令switch或用tss,红叶理解有误。
hibernate
2002-02-18
打赏
举报
回复
每个程序可以有许多LDT?
LDT只有在保护模式下才可用。保护模式下的每个程序是作为一个进程来运行的,每个程序只能有一个LDT。
awinder
2002-02-17
打赏
举报
回复
GDT是系统中唯一的,LDT是访问系统描述符中0010属性(也就是LDT属性)的描述符。每个程序可以有很多LDT。具体的你可以找一本讲保护模式汇编的书看看。或者翻翻Intel Architecture Software Developer’s Manual
利用
LDT
和
GDT
的检测方法
利用
LDT
和
GDT
的检测方法
操作系统篇-分段机制与
GDT
、
LDT
.docx
操作系统篇-分段机制与
GDT
、
LDT
.docx
用不到200行代码设计x86保护模式下的操作系统
课程重点讲解80386保护模式下的编程,涉及的内容包括:1、计算机启动流程的介绍2、实模式和保护模式
区别
,进入保护模式下的方法3、
GDT
/IDT/
LDT
表介绍以及使用方法4、利用TSS来实现任务的切换5、利用8253定时器中断...
GDT
R
GDT
LDT
R
LDT
寄存器说明
详细描述了X86平台四个重要寄存器的使用方式
Orange’s:一个操作系统的实现 Descriptor 3宏详解
补充:关于
GDT
/
LDT
、段选择子和段描述符的解释
GDT
/
LDT
:
GDT
/
LDT
是段描述符表,里面定义了每个段的段描述符的界限和属性,而段描述符的基址是在代码段中初始化的。 其中,
LDT
是局部描述符表,
LDT
在
GDT
中也有段...
汇编语言
21,459
社区成员
41,600
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章