pmtest1.asm from 自动手写操作系统 粗略解释
来源:互联网 发布:品牌网络推广渠道 编辑:程序博客网 时间:2024/05/18 00:46
第一章其实还是很好理解的,配置相关寄存器,使用10号中断显示helloworld,到了第三章一开始就讲了一堆没法让人理解的东西,着实让人崩溃,看了很多博客,两天才大概明白是怎么回事!
首先得有8086的相关知识,王爽那本书。
然后就是为啥实模式跳到保护模式会有gdt这东西。
因为在8086下,
段(16位)×16+偏移(16位)=20位,所以2^20=1048576B=1024KB=1mb
最多只能访问1mb的空间,很少,然后他想了一个办法,把更大的32位的段基址放在一个表中,叫做gdt(globe descriptor table),这个表里头可以存放显示操作的段,存放数据data的段,存放显存地址的段,各种段,就这样一折腾使得最大的寻址空间达到了2^32=4gb的空间。
但是cpu并不知道你这个表在哪里,你得使用lgdt命令来把一个结构为32位表头段地址+16位表界限加载到gdtr这个寄存基中来告诉cpu你的表在哪里。
最后就是选择子了,其实也好理解,因为并不是表里的每一个段都是要执行的,就像上面说的
存放显示操作的段
存放数据的段
存放显存地址的段
我们只要执行存放显示操作的段,所以就有了选择子(selector),选择子实际是一个偏移来的,在这里不多讲,有了选择子就可以选择性的执行表中的某一个任务啦。
http://www.360doc.com/content/11/0409/22/6580811_108479867.shtml
这个详细解释了保护模式下的寻址还有代码的解释
http://blog.csdn.net/yeruby/article/details/39718119
这个详细了几个专业术语,gdt,gdtr,ldt,ldtr
看完上面两个就差不多懂了!
- pmtest1.asm from 自动手写操作系统 粗略解释
- pmtest1.asm
- 自己动手写操作体统 pmtest1.asm 详细解释
- 自己动手写操作体统 pmtest1.asm 详细解释
- 全面剖析《自己动手写操作系统》的pmtest1.asm
- 全面剖析《自己动手写操作系统》的pmtest1.asm
- 全面剖析《自己动手写操作系统》的pmtest1.asm
- 全面剖析《自己动手写操作系统》的pmtest1.asm
- 全面剖析《自己动手写操作系统》的pmtest1.asm (转)
- 全面剖析《自己动手写操作系统》的pmtest1.asm
- 《自己动手写操作系统》第三章a/pmtest1.asm
- 自己动手写操作系统第二章 pmtest1.asm分析
- 《一个操作系统的实现》——pmtest1.asm详解
- 《一个操作系统的实现》——pmtest1.asm详解
- 一个操作系统的实现重点 ---pmtest1.asm详解
- 《一个操作系统的实现》——pmtest1.asm详解
- 全面剖析《自己动手写操作系统》的pmtest1.asm
- 1.pmtest1.asm <Orange's 一个操作系统的实现>
- 对编译时异常和运行时异常的理解
- Android中级篇之Fresco-加载图片基础[详细图解Fresco的使用
- 数据挖掘 ID3
- 'sessionFactory' or 'hibernateTemplate' is required
- 【Hive】Hive编程指南
- pmtest1.asm from 自动手写操作系统 粗略解释
- redis管理工具——Redis Desktop Manager
- GoldenGate部分运维命令
- 一道JS面试题
- 错误中学习--TypeError: this.ds.fields.get(...) is undefined
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- html中a标签点击去掉高亮背景
- Linux下的tty和pts详解
- 【linux系统加固之】uclibc加固