2013-02-19 41 views
0

这是我的代码:GDT中DC位的作用是什么?

... 
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位是数据选择器的方向位,当它为0时,该区段长大,当它为1时,区段增长下降。但不知道什么是长大和长大的意义。 (ESP ++和ESP--)

回答

0

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

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

相关问题