DC位在GDT中的作用是什么?

时间:2013-02-19 09:27:30

标签: protected-mode gdt

这是我的代码:

...
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--)

1 个答案:

答案 0 :(得分:0)

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

  

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