-
-
Save jn7163/83be6abdc427ebc56118873dd26ad1d5 to your computer and use it in GitHub Desktop.
Revisions
-
hemashushu created this gist
Jul 8, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,65 @@ # 轻松学习汇编语言 汇编是直接跟硬件打交道的, 于是在学习汇编的同时,不经意间就了解到计算机的工作原理。 ## 《穿越计算机的迷雾 by 李忠》 这是饭前开胃菜,作者从什么是电流开始,讲加法器、数字逻辑、触发器、CPU 原理、外设等,是计算机(硬件)组成原理的科普向轻松读物 ## 《汇编语言 by 王爽》 这本可能是一些学校的教科书,内容写得确实不错,浅显易懂。 实践环境的搭建: a. DOSBox https://www.dosbox.com/ 这是一个 x86 模拟器,开源免费,可以模拟 8086/实模式 的实验环境,在里面敲汇编再适合不过了。 b. FreeDOS https://www.freedos.org/ 如果要在 DOS 里写汇编代码,文本编辑器(edit)和文本查看器(type)是不可缺少的,当然还有调试器(debug),这些在 FreeDOS 里都有,下载 USB 安装包在 DOSBox 里安装即可。开源免费。 c. masm611 https://sourceforge.net/projects/masm611/ 微软的汇编语言编译/汇编器和链接器 MASM,下载后同样也是安装在 DOSBox 里。 至此,学习《汇编语言》所需的实践环境就搭建好了。 ## 《x86 汇编语言从实模式到保护模式 by 李忠》 这本书帮助我们从现代角度来学习汇编,是从 8086 年代走向现代的桥梁。 内容偏向实践,大致可以认为是前两本内容的结合和深入。 阶段1:计算机从一通电开始都做了些什么,如何运行裸机程序、引导操作系统,读写硬盘、显卡/显示器、BIOS 等 阶段2:最小化的操作系统原理和实践,如何进入保护模式、如何动态加载程序、任务隔离和特权级别、任务切换、分页机制等 因为我们是要轻松学,所以第二阶段的只需稍微翻一下有个印象即可,后面我们还会再回来 实践环境的搭建: a. Bochs http://bochs.sourceforge.net/ 又一个 x86 模拟器,开源免费,跟 DOSBox 不同的是它模拟的机器接近现代计算机,跟诸如 VirtualBox 等虚拟机不同的是它支持调试,比如直接查看寄存器的数据和状态,查看指令序列,设置断点等,彻底地了解 x86 的运行全过程。 b. NASM https://www.nasm.us/ 一个汇编器/链接器,使用 intel 风格语法,比起微软的 MASM,好处是开源免费,不需要安装庞大的 Visual Studio 或者 MSBuild,支持 Linux/macOS。 使用汇编写现代的应用程序,有两套入门教程,: * https://www.tutorialspoint.com/assembly_programming/index.htm * https://asmtutor.com/ 上面的两个教程也可以先不看,后面学 Linux 系统环境下的编程、C 语言之后再回来看。 在后面学习操作系统的原理和简单实践过程中,还会再回来补一些保护模式的汇编编程。 基础内容很多交叉纠缠在一起,所以当看这系列时如果被卡住,可以直接跳到下一节,走一圈后再回来,即螺旋式学习。