摘要: 之前已经做了一些理论上的铺垫,这次我们就可以看代码了。 一、代码清单 ;代码清单11-1 ;文件名:c11_mbr.asm ;文件说明:硬盘主引导扇区代码 ;创建日期:2011-5-16 19:54 ;设置堆栈... 阅读全文
posted @ 2016-01-13 22:39 漂泊的指针 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 这篇博文,我们编写一个C语言的小程序,来解析数据段或者代码段描述符的各个字段。这样我们阅读原书的代码就会方便一点,只要运行这个小程序,就可以明白程序中定义的数据段或者代码段的描述符了。 这段代码,我用了“位字段”的知识,这还是第一次使用C语言的这个特性呢,如果有不对的地方,欢迎博友斧正。 写代码... 阅读全文
posted @ 2016-01-12 22:23 漂泊的指针 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 一、段描述符的分类 在上一篇博文中已经说过,为了使用段,我们必须要创建段描述符。80X86中有各种各样的段描述符,下图展示了它们的分类。 看了上图,你也许会说:天啊,怎么这么多段描述符啊!我可怎么记住呢? 别担心,我会在以后的博文中,跟随原书的作者,为您逐步介绍。我们的学习是循序渐进的,所以不... 阅读全文
posted @ 2016-01-09 22:01 漂泊的指针 阅读(3221) 评论(0) 推荐(0) 编辑
摘要: 在进入保护模式之前,我们先要学习一些基础知识。今天我们看一下全局描述符表(Global Descriptor Table, 简称GDT)。 同实模式一样,在保护模式下,对内存的访问仍然使用段地址加偏移地址。但是,在保护模式下,在每个段能够访问之前,必须先登记。这就好比像C语言中,“对变量的使用必... 阅读全文
posted @ 2016-01-09 12:11 漂泊的指针 阅读(2213) 评论(0) 推荐(0) 编辑
摘要: 在说正题之前,我们先看2个概念。 1.指令集架构(ISA) ISA 的全称是 instruction set architecture,中文就是指令集架构,是指对程序员实际“可见”的指令集,包含了程序员编写一个能正确运行的二进制机器语言程序的所有信息,涉及到指令、 I/O 设备等。例如 Inte... 阅读全文
posted @ 2016-01-09 00:35 漂泊的指针 阅读(967) 评论(0) 推荐(0) 编辑
摘要: 1.BIOS中断 我们可以为所有中断类型自定义中断处理过程,包括内部中断、硬件中断和软中断。 BIOS中断,又称BIOS功能调用,主要是为了方便地使用最基本的硬件访问功能。通常,为了区分针对同一硬件的不同功能,使用寄存器AH来指定具体的功能编号。 比如说,以下的指令用于从键盘读取一个按键: m... 阅读全文
posted @ 2016-01-03 23:32 漂泊的指针 阅读(2389) 评论(0) 推荐(0) 编辑
摘要: 有幸结识了《X86汇编语言:从实模式到保护模式》一书。我觉得这本书非常好,语言活泼,通俗易懂,源码丰富,受益匪浅。读罢一遍,意犹未尽。于是打算再读一遍,并把自己的读书所学总结成笔记,一来给自己留个纪念,二来供各位访客参考。初出茅庐,牛刀小试,如有错误,实属必然。还请广大博友批评指正,不吝赐教。 ... 阅读全文
posted @ 2016-01-03 22:13 漂泊的指针 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 上次我们说了代码,这次我们说说怎样看到实验结果。 首先编译源文件(我的源文件就在当前路径下,a盘和c盘在上一级目录下): nasm -f bin c08_mbr.asm -o c08_mbr.bin nasm -f bin c09_1.asm -o c0901.bin 然后将bin文件写入a盘... 阅读全文
posted @ 2016-01-03 19:49 漂泊的指针 阅读(572) 评论(0) 推荐(1) 编辑
摘要: 1.代码清单 ;代码清单9-1 ;文件名:c09_1.asm ;文件说明:用户程序 ;创建日期:2011-4-16 22:03 ;=======================================... 阅读全文
posted @ 2016-01-01 23:21 漂泊的指针 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 80X86中断系统 能够处理256个中断 用中断向量号0~255区别 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理 1、中断的分类 中断可以分为内部中断和外部中断。 (1)内部中断 除法错中断 指令中断 溢出中断 单步中断 断点中断 (2)外部中断 非屏蔽中断... 阅读全文
posted @ 2016-01-01 22:45 漂泊的指针 阅读(3000) 评论(1) 推荐(0) 编辑