Electronic Joint Business

Solution for E-Business

freeDOS

用汇编来学习 PC 的实模式、保护模式和长模式

本文主要面向那些有兴趣了解 CPU 是如何工作的用户,这里我将解释一些汇编语言基础知识、实模式、保护的模式和长模式。在文章的后面我还提供了完整的汇编代码,你可以用来测试看看处理器是如何在实模式下工作,如何进入保护模式,如何进入 64 位模式,最后又是如何从所有模式退出返回到 DOS。1

准备
要阅读本文以及进行相应的测试,你可能需要准备:

  • 汇编知识。虽然读者不需要编写代码,不过如果你对寄存器、内存访问、基本命令等有些了解会很有帮助。
  • Flat 汇编器。一个能生成 Win32, X64 和 DOS 下的可执行文件的“现代”汇编器。
  • 干净的 DOS 环境,你可以使用freeDOS

你无需在物理机上安装使用 DOS,相反你可以使用 VMWare 或者 Bochs 这样的虚拟机。这里我推荐使用 Bochs,不仅因为它是免费的,而且它的调试器可以陷入任何程序产生的异常,并告诉你到底发生了什么。

过去 Borland 的 Turbo 汇编器 (TASM) 十分流行,不过随着 Borland 的谢幕,TASM 也寿终正寝。附件中的所有代码都是用 FASM 编写的,该汇编器可以生成 16位的 DOS 以及 32/64位的 Windows 下的可执行文件。

你还可以在 Visual Studio 中找到 ML.exe 和 ML64.exe,这是 MASM 的新版本。不过该汇编器只能产生对应架构的 PE 格式,不适合这里的使用场景。

>>> 阅读全文

 

, , , ,