pmtest2.asm 保护模式2

来源:互联网 发布:淘宝爱逛街在哪里 编辑:程序博客网 时间:2024/05/24 06:21

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

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


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

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

  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,                 00             ; 空描述符
 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保护模式与�%A	
				<ul class=
  • pmtest2.asm 保护模式2
  • 第三章 保护模式 pmtest2.asm添加实现段间间接远转移代码
  • pmtest2.asm
  • 第三章pmtest2源码解析 实模式到保护模式再到实模式
  • 保护模式下pmtest1.asm的理解
  • NASM 纯汇编打造简单中文操作系统(2 init.asm初始化操作系统内存。进入32位保护模式)
  • NASM 纯汇编打造简单中文操作系统(2 init.asm初始化操作系统内存。进入32位保护模式)
  • 2.pmtest2.asm <Orange's 一个操作系统的实现>
  • 2.pmtest2.asm <Orange's 一个操作系统的实现>
  • 修改pmtest1.asm,直接作为bootloader启动并进入保护模式
  • 3.保护模式2----认识保护模式B
  • 80x86保护模式(2)
  • 保护模式
  • 保护模式
  • 保护模式
  • 保护模式
  • 保护模式
  • 保护模式
  • GDB使用手册
  • 5 .NET框架类在ASP.NET中的使用(2)
  • C#-CSC编译器的使用
  • MFC应用程序中处理消息,创建窗口的过程,关闭窗口(非模态窗口),打开模式对话框等的函数调用顺序
  • 关于函数调用的总结
  • pmtest2.asm 保护模式2
  • 查看源代码的ctags,cscope(1)
  • 优雅地关闭Socket;检测非正常断开的TCP连接
  • Linux shell脚本全面学习
  • 正则表达式
  • 浅尝Linux
  • Today is history
  • help cscope (3)
  • Oracle Report迁移到BI Publisher
  • 原创粉丝点击