gpt4 book ai didi

cpu-registers - intel x86 段寄存器和 GDT(LDT) 寄存器的大小

转载 作者:行者123 更新时间:2023-12-01 07:59:54 25 4
gpt4 key购买 nike

我是系统架构的入门级学生,准确地说是intel x86。目前我正在阅读 Intel 的手册 (1,3a,3b,3c),但我被困在分段部分。

据我所知,在保护模式下,系统正在将逻辑内存转换为线性内存(或物理内存)并且“远指针”指向具有两个不同部分的实际线性(或物理)内存地址,段选择器和偏移量。

正如我从大学学到的,每个段寄存器都有 16 位的数据部分,根据Intel的手册,16bits只是段寄存器的可见部分,但是段寄存器中有更多的隐藏部分,用户无法编程或访问。我有机会知道段寄存器的实际大小吗?

第二个问题是关于保护模式的 LDT , GDT , IDT 寄存器。这些寄存器(LDTr、GDTr、IDTr)是 cpu 芯片组中的实际寄存器吗?如果是,是否有机会在引导序列(prevelige ring 3,用户模式)后访问这些表?

感谢您阅读我的问题。

附言。我试图用谷歌搜索它,但找不到任何答案。这就是我花时间写这个问题的原因。

最佳答案

段寄存器是 16 位的。段寄存器引用的段描述符更大。令人困惑的是,所有 i386 和更高版本的处理器都有一个小的非一致的段描述符缓存,它对应于段寄存器(每个段寄存器一个缓存的描述符),有时称为隐藏部分 段寄存器。它实际上并不是寄存器的一部分,尽管缓存中的每个条目都与特定的段寄存器密切相关。缓存与段寄存器紧密相关,因为无论何时写入段寄存器,都会更新相应的缓存元素(从内存中重新读取),并且使用段寄存器的指令使用与该寄存器对应的缓存描述符,而不是而不是从内存中读取描述符。

关于cpu-registers - intel x86 段寄存器和 GDT(LDT) 寄存器的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com