摘要: 从网上搜罗一个很详细注释的boot.s版本,加了小小一点点自己的理解,不太多. 用 as86, ld86 可以编译, ubuntu下可以通过 apt install bin86 来安装好像. 阅读全文
posted @ 2019-12-25 16:00 姜大伟 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 1. org 0x7c00 ORG: 是伪指令, 而且是给链接器用的, 是在链接的时候, 让 代码里的所有偏移地址, 从 0x7c00开始, 而不是 0x0000 比如 mov ds, ax,默认编译完成后 , 他的地址是 从 0x00开始, 逐渐递增, 而 org ***, 只是让 地址从 0x* 阅读全文
posted @ 2019-12-25 10:31 姜大伟 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 段的定义 段的介绍 分段机制就是把虚拟地址空间中的虚拟内存组织成一些长度可变的称为段的内存单元。 80386虚拟地址空间中的虚拟地址(逻辑地址)由一个段部分和一个偏移部分构成。段是虚拟地址到线性地址转化的基础。每个段有三个参数定义: 多个段映射到线性地址中的范围可以部分重叠或覆盖,甚至完全重叠,如下 阅读全文
posted @ 2019-12-25 10:12 姜大伟 阅读(816) 评论(2) 推荐(0) 编辑
摘要: 段选择符 段选择符(或称段选择子)是段的一个十六位标志符,其实就是被加载到段寄存器里的值, 如下图所示。段选择符并不直接指向段,而是指向段描述符表中定义段的段描述符。 段选择符包括 3 个字段的内容: 请求特权级RPL([0:1])表指引标志TI([2])TI = 0 ,表示描述符在GDT中,TI 阅读全文
posted @ 2019-12-25 09:28 姜大伟 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 保护模式下三个重要的系统表——GDT、LDT和IDT 这里主要是解释中断描述符表 中断描述符表IDT将每个异常或中断向量分别与它们的处理过程联系起来。与GDT和LDT表类似,IDT也是由8字节长描述符组成的一个数组。与GDT不同的是,表中第一项可以包含描述符。为了构成IDT表中的一个索引值,处理器把 阅读全文
posted @ 2019-12-25 09:15 姜大伟 阅读(4200) 评论(0) 推荐(1) 编辑