首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

GDT有关问题

2012-03-30 
GDT问题《自己动手写操作系统》的开始部分pmtest1.asm编译方式:nasmpmtest1.asm-opmtest1.com%includepm.i

GDT问题
《自己动手写操作系统》的开始部分


pmtest1.asm
                        ;   编译方式:nasm   pmtest1.asm   -o   pmtest1.com
                        %include       "pm.inc "     ;     常量、宏,以及一些说明
                        org   0100h
                                jmp   LABEL_BEGIN
                        [SECTION   .gdt]
                        ;   GDT
                        LABEL_GDT:                     Descriptor   0,   0,   0             ;   空描述符
                        LABEL_DESC_CODE32:     Descriptor   0,   SegCode32Len-1,   DA_C   +   DA_32   ;   ???
                        代码段,32位
                    .......
                    .......
[SECTION   .s32];   32   位代码段.   由实模式跳入.
[BITS32]

LABEL_SEG_CODE32:
movax,   SelectorVideo
movgs,   ax;   视频段选择子(目的)

movedi,   (80   *   10   +   0)   *   2;   屏幕第   10   行,   第   0   列。
movah,   0Ch;   0000:   黑底         1100:   红字
moval,   'P '
mov[gs:edi],   ax

;   到此停止
jmp$

SegCode32Lenequ$   -   LABEL_SEG_CODE32

我想知道一下其中SegCode32Leng-1段限的问题,为什么会是SegCode32Leng-1
是不是仅用它容纳[SECTION   .s32];   这个代码段

[解决办法]
我觉得就是这样

热点排行