本文是写给《X86汇编语言 从实模式到保护模式》读者的一份Bochs配置指南。 我们要做的有: 1.下载并安装bochs 2.配置bochs 3.通过bochs调试虚拟硬盘 bochs的官方网址:http://bochs.sourceforge.net/ bochs的下载地址:http://sour ...
分类:
编程语言 时间:
2019-01-28 13:58:46
阅读次数:
241
BIOS中断 BIOS中断 实模式下,调用中断采用的是BIOS中断方式。 BIOS中断就不介绍了: "BIOS中断" BIOS中断大全 查询相应的中断API可以根据BIOS中断大全: "BIOS中断大全" BIOS的中断向量表 中断向量表位置 中断向量表位于BIOS的 0x0000 0x03FF 地 ...
分类:
移动开发 时间:
2019-01-05 00:16:20
阅读次数:
230
[TOC] 实模式分段机制 1. 为什么要分段 8086cpu有20根地址总线,可以访问 1M (1 [CS段寄存器 : IP指令指针寄存器] 2. 数据段 程序操作的数据也集中一起,放在内存的连续一段区域,称为数据段。 内存中数据位置: [DS段寄存器:偏移地址] 3. 分段后寻址方式 8086的 ...
分类:
其他好文 时间:
2019-01-05 00:15:51
阅读次数:
425
64KB-4GB-64TB? 我记得大学的汇编课程、组成原理课里老师讲过实模式和保护模式的区别,在很多书本上也有谈及,无奈本人理解和感悟能力实在太差,在很长一段时间里都没真正的明白它们的内含,更别说为什么实模式下最大寻址空间为1MB?段的最大长度不超过64KB?而保护模式下为啥最大寻址能力就变成了6... ...
分类:
其他好文 时间:
2018-11-10 15:14:29
阅读次数:
239
这是一个复古的话题。使用 C 语言和 AT&T 汇编语言写能够在 x86 实模式运行的 16 位代码,这种代码一般用于自己写操作系统的启动扇区。用的工具是 Linux 中最常见的 GCC 和 GNU Binutils。希望能够吸引到你们。 ...
分类:
系统相关 时间:
2018-10-15 11:49:10
阅读次数:
245
这一节我们来研究从核心代码特权级转移到应用代码特权级。 首先将boot.asm贴出来如下: inc.asm如下: 18-2节的loader.asm例子如下: 第10-16行我们定义的段描述符特权级都是0,处理器从实模式跳转到保护模式后进入的是核心特权级0,进入32位的保护模式后首先执行的是144行的 ...
分类:
其他好文 时间:
2018-10-13 12:53:53
阅读次数:
161
在实模式下开启4GB的物理内存地址寻址(称之为Big Real Mode) + 通过A20快速门(Fast Gate)修改0x90端口的数据, 对其进行置位(类似于打开一个开关), 开启 + 使用CLI汇编指令关闭外部中断 + 使用lgdt加载保护模式需要的系统数据结构 + 置位cr0寄存器的值开启 ...
分类:
其他好文 时间:
2018-10-10 00:57:02
阅读次数:
166
英特尔处理器是怎样运行的?当我们打开计算机时,它会在能够加载操作系统之前经过一系列步骤。在这篇文章中,我们将看到典型的x86处理器如何启动。这是一个非常复杂且涉及的过程。我们只提出一个基本的整体结构。此外,处理器实际上采用何种路径来达到可以加载OS的状态,这取决于引导固件。 施加电源之前 让我们从B ...
分类:
其他好文 时间:
2018-10-07 19:45:06
阅读次数:
173
初入大二,刚刚接触和学习汇编语言这门课程,肯定有很多的不足和漏洞;本篇文章是关于王爽编著的《汇编语言》(第三版)第二章的章后实验的实验报告和总结。 一 实验环境的配置和测试 Debug是DOS,Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容,内存 ...
分类:
编程语言 时间:
2018-10-06 18:35:16
阅读次数:
356
计算机组成 9 中断和异常 9.4 中断的处理过程 那我们现在可以放心大胆地进行运算了。算,算,算,一旦遇到了一个异常情况,我们就根据这个异常情况的类型,去查找这个手册最前面的表格。假如我们遇到的可能是第四种类型,我们找到第四条,上面写着操作方法在第十二页。翻到第十二页,好,找到了。那么按照这个操作 ...
分类:
其他好文 时间:
2018-10-04 20:54:31
阅读次数:
267