www.pudn.com > cwin.rar > INITGDT.C


    /*----------------------------------------------------------- 
        函数 _Init_GDT : 初始化全局描述符表GDT 
    -----------------------------------------------------------*/ 
    #include  
 
    GDT  _MemCtrlBlock;              /* 全局描述符表GDT的定义  */ 
    long _CurrentEMM = 1200000L;     /* 当前自由扩充存储器地址 */ 
 
    void _Cdecl _Init_GDT(void) 
    { 
        /*-- 初始化空地址描述符 ---------------*/ 
        _MemCtrlBlock.BlankDsc.size     = 0; 
        _MemCtrlBlock.BlankDsc.baselow  = 0; 
        _MemCtrlBlock.BlankDsc.basehigh = 0; 
        _MemCtrlBlock.BlankDsc.attr     = 0; 
        _MemCtrlBlock.BlankDsc.blank    = 0; 
 
        /*-- 初始化本GDT表的地址描述符 --------*/ 
        _MemCtrlBlock.GDTDsc.size       = 0; 
        _MemCtrlBlock.GDTDsc.baselow    = 0; 
        _MemCtrlBlock.GDTDsc.basehigh   = 0; 
        _MemCtrlBlock.GDTDsc.attr       = 0; 
        _MemCtrlBlock.GDTDsc.blank      = 0; 
 
        /*-- 初始化源数据块地址描述符 ---------*/ 
        _MemCtrlBlock.Source.size       = 0; 
        _MemCtrlBlock.Source.baselow    = 0; 
        _MemCtrlBlock.Source.basehigh   = 0; 
        _MemCtrlBlock.Source.attr       = 0x093; 
        _MemCtrlBlock.Source.blank      = 0; 
 
        /*-- 初始化目标数据块地址描述符 -------*/ 
        _MemCtrlBlock.Destin.size       = 0; 
        _MemCtrlBlock.Destin.baselow    = 0; 
        _MemCtrlBlock.Destin.basehigh   = 0; 
        _MemCtrlBlock.Destin.attr       = 0x093; 
        _MemCtrlBlock.Destin.blank      = 0; 
 
        /*-- 初始化ROM BIOS代码地址描述符 -----*/ 
        _MemCtrlBlock.BiosCS.size       = 0; 
        _MemCtrlBlock.BiosCS.baselow    = 0; 
        _MemCtrlBlock.BiosCS.basehigh   = 0; 
        _MemCtrlBlock.BiosCS.attr       = 0; 
        _MemCtrlBlock.BiosCS.blank      = 0; 
 
        /*-- 初始化ROM BIOS堆栈地址描述符 -----*/ 
        _MemCtrlBlock.BiosSS.size       = 0; 
        _MemCtrlBlock.BiosSS.baselow    = 0; 
        _MemCtrlBlock.BiosSS.basehigh   = 0; 
        _MemCtrlBlock.BiosSS.attr       = 0; 
        _MemCtrlBlock.BiosSS.blank      = 0; 
    }