pmtest2.asm 保护模式2

参考于渊的《自己动手写操作系统》第三章中从实模式切换到保护模式,最后有重新

切回实模式的代码(代码如下),其中有几点不太明白的,参考其他文章之后在此记录一下。


其中还有不太明白的地方,希望大家能在下面 留个言帮我讲明白,谢谢。

下面代码有些宏定义没贴出来,应该能看明白。

  1 保护模式与实模式的切换(转) - fanwei51880 - 点睛 ==========================================
  2 保护模式与实模式的切换(转) - fanwei51880 - 点睛; pmtest2.asm
  3 保护模式与实模式的切换(转) - fanwei51880 - 点睛; 编译方法:nasm pmtest2.asm  - o pmtest2.com
  4 保护模式与实模式的切换(转) - fanwei51880 - 点睛 ==========================================
  5 保护模式与实模式的切换(转) - fanwei51880 - 点睛
  6 保护模式与实模式的切换(转) - fanwei51880 - 点睛 % include     " pm.inc "     ; 常量, 宏, 以及一些说明
  7 保护模式与实模式的切换(转) - fanwei51880 - 点睛
  8 保护模式与实模式的切换(转) - fanwei51880 - 点睛org    0100h
  9 保护模式与实模式的切换(转) - fanwei51880 - 点睛    jmp    LABEL_BEGIN
 10 保护模式与实模式的切换(转) - fanwei51880 - 点睛
 11 保护模式与实模式的切换(转) - fanwei51880 - 点睛[SECTION .gdt]
 12 保护模式与实模式的切换(转) - fanwei51880 - 点睛; GDT
 13 保护模式与实模式的切换(转) - fanwei51880 - 点睛;                                         段基址,       段界限     , 属性
 14 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_GDT:        Descriptor            0 ,                  0 0              ; 空描述符
 15 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_DESC_NORMAL:    Descriptor            0 ,            0ffffh, DA_DRW        ;  *** 注意此处为Normal 描述符 *****
 16 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_DESC_CODE32:    Descriptor            0 ,  SegCode32Len  -   1 , DA_C  +  DA_32    ; 非一致代码段,  32
 17 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_DESC_CODE16:    Descriptor            0 ,            0ffffh, DA_C        ; 非一致代码段,  16
 18 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_DESC_DATA:    Descriptor            0 ,    DataLen  -   1 , DA_DRW        ; Data
 19 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_DESC_STACK:    Descriptor            0 ,        TopOfStack, DA_DRWA  +  DA_32    ; Stack,  32  位
 20 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_DESC_TEST:    Descriptor    0500000h,            0ffffh, DA_DRW
 21 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_DESC_VIDEO:    Descriptor     0B8000h,            0ffffh, DA_DRW        ; 显存首地址
 22 保护模式与实模式的切换(转) - fanwei51880 - 点睛; GDT 结束
 23 保护模式与实模式的切换(转) - fanwei51880 - 点睛
 24 保护模式与实模式的切换(转) - fanwei51880 - 点睛GdtLen        equ    $  -  LABEL_GDT    ; GDT长度
 25 保护模式与实模式的切换(转) - fanwei51880 - 点睛GdtPtr        dw    GdtLen  -   1     ; GDT界限
 26 保护模式与实模式的切换(转) - fanwei51880 - 点睛        dd     0         ; GDT基地址
 27 保护模式与实模式的切换(转) - fanwei51880 - 点睛
 28 保护模式与实模式的切换(转) - fanwei51880 - 点睛; GDT 选择子
 29 保护模式与实模式的切换(转) - fanwei51880 - 点睛SelectorNormal        equ    LABEL_DESC_NORMAL     -  LABEL_GDT
 30 保护模式与实模式的切换(转) - fanwei51880 - 点睛SelectorCode32        equ    LABEL_DESC_CODE32     -  LABEL_GDT
 31 保护模式与实模式的切换(转) - fanwei51880 - 点睛SelectorCode16        equ    LABEL_DESC_CODE16     -  LABEL_GDT
 32 保护模式与实模式的切换(转) - fanwei51880 - 点睛SelectorData        equ    LABEL_DESC_DATA         -  LABEL_GDT
 33 保护模式与实模式的切换(转) - fanwei51880 - 点睛SelectorStack        equ    LABEL_DESC_STACK     -  LABEL_GDT
 34 保护模式与实模式的切换(转) - fanwei51880 - 点睛SelectorTest        equ    LABEL_DESC_TEST         -  LABEL_GDT
 35 保护模式与实模式的切换(转) - fanwei51880 - 点睛SelectorVideo        equ    LABEL_DESC_VIDEO     -  LABEL_GDT
 36 保护模式与实模式的切换(转) - fanwei51880 - 点睛; END of [SECTION .gdt]
 37 保护模式与实模式的切换(转) - fanwei51880 - 点睛
 38 保护模式与实模式的切换(转) - fanwei51880 - 点睛[SECTION .data1]     ; 数据段
 39 保护模式与实模式的切换(转) - fanwei51880 - 点睛ALIGN     32
 40 保护模式与实模式的切换(转) - fanwei51880 - 点睛[BITS     32 ]
 41 保护模式与实模式的切换(转) - fanwei51880 - 点睛LABEL_DATA:
 42 保护模式与实模式的切换(转) - fanwei51880 - 点睛SPValueInRealMode    dw     0
 43 保护模式与实模式的切换(转) - fanwei51880 - 点睛; 字符串
 44 保护模式与实模式的切换(转) - fanwei51880 - 点睛PMMessage:        db     " In Protect Mode now. ^-^ " 0     ; 进入保护模式后显示此字符串
 45 保护模式与实模式的切换(转) - fanwei51880 - 点睛OffsetPMMessage        equ    PMMessage  -  $$  ; 字符串PMMessage相对于LABEL_DATA的偏移,相对于数据段的偏移
 46 保护模式与实模式的切换(转) - fanwei51880 - 点睛StrTest:        db     " ABCDEFGHIJKLMNOPQRSTUVWXYZ " 0
 47 保护模式与实模式的切换(转) - fanwei51880 - 点睛OffsetStrTest        equ    StrTest  -  $$
 48 保护模式与实模式的切换(转) - fanwei51880 - 点睛DataLen            equ    $  -  LABEL_DATA
 49 保护模式与实模式的切换(转) - fanwei51880 - 点睛; END of [SECTION .data1]
 50
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值