当前位置:  技术问答>linux和unix

GDT问题

    来源: 互联网  发布时间:2016-01-20

    本文导语:  《自己动手写操作系统》的开始部分 pmtest1.asm             ; 编译方式:nasm pmtest1.asm -o pmtest1.com             %include   "pm.inc"  ;  常量、宏,以及一些说明             org 0100h           ...

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


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 位代码段. 由实模式跳入.
[BITS 32]

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

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

; 到此停止
jmp $

SegCode32Len equ $ - LABEL_SEG_CODE32

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

|
我觉得就是这样

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3