ATT 汇编语言学习笔记开篇语
专栏导航上一篇无回到目录下一篇无本节内容本专栏的设置主要是为讲解 Linux 0.12 内核作铺垫。大概是在 2018 年的时候我开始学习汇编语言。两周左右学完了王爽老师的 8086 汇编教材。后来我又去看了郑刚先生的《操作系统真象还原》、李忠先生的《X86 汇编语言从实模式到保护模式》、川合秀实先生的《30天自制操作系统》、赵炯先生的《Linux 内核完全剖析基于 0.12 内核》等等。赵炯先生的书我看了好几遍才算是大致了解了 Linux 0.12 内核部分内容。有了一点了解以后我又尝试着去编译 0.12 内核结果呢总是失败编译出来的代码总是有问题我也不知道问题出在哪里。现在我也不知道问题出在哪里。大概是在 2023年的时候我又尝试着去编译 Linux 0.12 内核。这一次呢我采用了新的方法。编译的时候也遇到了一些个 bug经过一番调试算是把 bug 给解决了。最终呢在 2023 年的 10 月 20 几号我将 Linux 0.12 内核给编译出来了。它能够运行还能够执行少数几个简单的命令。有机会的话我会把我编译出来的 Linux 0.12 内核向大家讲解。而想要讲解 Linux 0.12 内核以及学习这个内核一个基本功就是要去学习 ATT 汇编。尽管在赵炯先生的书里面以及在郑刚、田宇等人的书里面都有去讲解 ATT 汇编但是呢我还是建议你系统完整地学习一遍。在学习方面有的人喜欢用到了再学喜欢跟着项目走碎片化地去学习。我的话我本人就比较喜欢系统性地去学习一些个东西。当然了不是每一种东西都需要系统性地去学习。但是呢还是有许多的科目我喜欢系统学习。如果你像我一样如果不是系统完整地去学习某些科目就觉得少了点什么那么本专栏应该是会很适合你的。ATT 汇编这是 Linux 内核源代码里面会采用的一种汇编语法。我们想要学习 Linux 内核想要学习操作系统知识想要从事系统底层开发那么ATT 汇编这会是一项重要的基本功。本专栏我会将其作为操作系统系列课程的一部分来予以讲解以培养操作系统方面的程序员。我不是那种写书的老手在写作本专栏的时候我有我的参考教材。参考教材如下。图1这本书算是一个绝版书了。在淘宝网上你搜一搜或许可以搜到。这本书的作者是美国的 Richard Blum由马朝晖等翻译。我这里呢有这本书的电子版。链接https://pan.baidu.com/s/1BmqNW4mVqddW12JI_Q7MVQ提取码yhql--来自百度网盘超级会员V4的分享这是我的百度网盘链接了。百度网盘你应该会用吧不会用的话请自行搜索。根据上面我分享的链接与提取码你可以进入如下的界面。图2然后呢依次点击进入【内核学习】、【教材与资料】文件夹来到如下界面。图3在图3 的红色框线所示的部分就是我所参考的教材的 PDF 电子书了。你可以将其下载下来或者转存到你自己的网盘里面。这种绝版内容还是将其保存下来为好。对于这本书的内容我打算全篇讲解的。但是呢讲解的时候我也会删减与调整部分内容。在我写作的当前已经有人写出了 64 位的 ATT 汇编语言教材了。而我所参考的这本书它里面所涉及的语法仅仅是 32 位汇编语言的语法。如果你想要进入系统底层的学习那么你应该从 16 位的汇编语言开始学起。我个人推荐的教材是王爽老师的汇编语言教材第二版、第三版、第四版都可以。王爽老师的汇编语言教材的截图如下。图4在我的网盘里在图3 所示的界面中我也收藏了王爽老师的汇编教材的 PDF 版本。你也可以将其保存下来的。关于王爽老师的汇编语言教材与之配套的视频讲解你可以从 B 站里面搜索到的。小甲鱼的讲解就比较轻松幽默还有另外一个人的讲解也很棒且和教材内容非常符合。以下链接是小甲鱼的汇编语言视频教程。B 站小甲鱼汇编视频教程与王爽汇编教材配套以下链接是另一位讲师的汇编语言视频教程。汇编语言从 0 开始重制版两个 B 站链接都是与王爽老师的教材相配套的。如果你之前从未接触过汇编语言那么你一定要先去学习王爽老师的汇编语言。否则本专栏你大概率地会看不懂。在你有了王爽老师的汇编教材的基础以后那么你可以尝试着来学习本专栏的知识。不过呢在我这里我也没把握是否能够让你在学完了王爽老师的教材以后能够顺畅地学习本专栏内容。为了使得具备了王爽汇编基础的人能够顺利地过渡到本专栏我还推荐你去学习一下 Windows 32 位汇编语言推荐你看一看郑州大学的钱晓捷先生的汇编语言教材。在这里我再将钱晓捷先生的汇编语言教材的封面给贴出来。图5图6当初我学习汇编语言的顺序首先呢是去学习的王爽老师的汇编语言教材然后呢去学习了钱晓捷先生的汇编语言教材以及对应的中国大学 MOOC 的视频。再往后呢我去学习了李忠先生的《X86 汇编语言从实模式到保护模式》教材。在李忠先生的汇编教材里面他讲了另一种汇编语言不是 Windows 汇编而是在 Linux 和 Windows 里面都可以使用的汇编叫做 NASM 汇编。个人的话呢我倒是建议你在学完了钱晓捷先生的 32 位汇编语言以后也去购买李忠先生的汇编教材看一看不见得要将李忠先生的汇编教材都看完但是呢还是建议你去接触其中的一部分的内容以便呢你能够对 NASM 汇编语法有一个基础的了解。在你对 NASM 汇编有了基础的了解以后你再来学习本专栏那将会是比较容易的了。当然了对于 NASM 汇编你其实也不是说非得先学完它然后才来学习本专栏。你也可以说本专栏和 NASM 汇编同时学习也是可以的。本专栏所讲述的内容算是一个比较偏比较专门化的内容。如果你想要用本专栏所讲解的汇编语言来开发应用软件那是大可不必的。因为现在流行的 Python、Java、C足够你用来开发应用程序的了。然而你若是想要去学习操作系统知识学习 Linux 内核我还是比较建议你专门来学习一下本专栏的知识的。祝愿你在汇编语言学习的道路上能够开心快乐收获丰富。专栏导航上一篇无回到目录下一篇无