【问题标题】:What is the role of DC bit in GDT?GDT中DC位的作用是什么?
【发布时间】:2013-07-18 16:39:42
【问题描述】:

这是我的代码:

...
data_seg equ os_data-gdt_start
code_seg equ os_code-gdt_start
...
jmp code_seg:pm_start
[BITS 32]
pm_start:        
mov ax,data_seg
mov ds,ax
mov word [ds:0xb8000],0xC341

当 gdt 中的 dc 位(访问字节的第三位)为零时,它可以正常工作。 我想知道为什么是1时不工作?

我知道 dc 位是数据选择器的 Direction 位,当它为 0 时,段增长,当它为 1 时,段增长。但不知道具体是什么意思。当我想使用堆栈时,成长和成长对我来说意味着。(ESP++和ESP--)

【问题讨论】:

    标签: protected-mode gdt


    【解决方案1】:

    DC 位是 osdev.org 的名称,在英特尔的手册中它是扩展方向。数字只能有两个方向:它可以增加或减少。直流位是与之一起玩的东西。

    如果堆栈段的大小需要动态变化,则堆栈段可以是向下扩展的数据段(设置了expansion-direction标志)。 动态改变段限制会导致堆栈空间被添加到堆栈底部。

    【讨论】:

    • 谢谢,我一直以为是控制堆栈增长的方向loll,没有意义ik
    猜你喜欢
    • 1970-01-01
    • 2016-11-20
    • 2011-06-10
    • 2022-08-19
    • 2013-09-16
    • 1970-01-01
    • 2019-05-01
    • 2021-08-26
    • 2011-08-27
    相关资源
    最近更新 更多