×

x86汇编语言从实模式到保护模式的电子教程免费下载

消耗积分:0 | 格式:pdf | 大小:5.27 MB | 2020-07-13

方式都

分享资料个

  每一种处理器都有它自己的机器指令集,而汇编语言的发明则是为了方便这些机器指令的记忆和书写。尽管汇编语言已经较少用于大型软件程序的开发,但从学习者的角度来看,要想真正理解计算机的工作原理,掌握它内部的运行机制,学习汇编语言是必不可少的。这套图书分为两册,采用开源的 NASM 汇编语言编译器和 VirtualBox 虚拟机软件,以个人计算机广泛采用的 Intel 处理器为基础,详细讲解了 Intel 处理器的指令系统和工作模式,以大量的代码演示了 16/32/64 位软件的开发方法。上册集中介绍处理器的 16 位实模式和 32 位保护模式,以及基本的指令系统;下册侧重于介绍 64 位工作模式、多处理器管理、高速缓存控制、温度和电源管理、高级可编程中断控制器、多媒体支持等。这是一本有趣的书,它没有把篇幅花在计算一些枯燥的数学题上。相反,它教你如何直接控制硬件,在不借助于 BIOS、DOS、Windows、Linux 或者任何其他软件支持的情况下来显示字符、读取硬盘数据、控制其他硬件等。本书可作为大专院校相关专业学生和计算机编程爱好者的教程。

  尽管汇编语言也是一种计算机语言,但却是与众不同的,与它的同类们格格不入。一方面,处理器的工作是执行指令,用它所做的一切都是执行指令并获得结果;另一方面,汇编语言为每一种指令提供了简单好记、易于书写的符号化表示形式。一直以来,人们对于汇编语言的认识和评价可以分为两种,一种是觉得它非常简单,另一种是觉得它学习起来非常困难。你认为我会赞同哪一种?说汇编语言难学,这没有道理。学习任何一门计算机语言,都需要一些数制和数制转换的知识,也需要大体上懂得计算机是怎么运作的。在这个前提下,汇编语言是最贴近硬件实体的,也是最自然和最朴素的。最朴素的东西反而最难掌握,这实在说不过去。因此,原因很可能出在我们的教科书上,那些一上来就搞一大堆寻址方式的书,往往以最快的速度打败了本来激情高昂的初学者。但是,说汇编语言好学,也同样有些荒谬。据我的观察,很多人掌握了若干计算机指令,会编写一个从键盘输入数据,然后进行加减乘除或者归类排序的程序后,就认为自己掌握了汇编语言。还有,直到现在,我还经常在网上看到学生们使用 DOS 中断编写程序,他们讨论的也大多是实模式,而非 32 位或者 64 位保护模式。他们知道如何编译源程序,也知道在命令行输入文件名,程序就能运行了,使用一个中断,就能显示字符。至于这期间发生了什么,程序是如何加载到内存中的,又是怎么重定位的,似乎从来不关汇编语言的事。这样做的结果,就是让人以为汇编语言不过如此,没有大用,而且非常枯燥。很难说我已经掌握了汇编语言的要义。但至少我知道,尽管汇编语言不适合用来编写大型程序,但它对于理解计算机原理很有帮助,特别是处理器的工作原理和运行机制。就算是为了这个目的,也应该让汇编语言回归它的本位,那就是访问和控制硬件(包括处理器),而不仅仅是编写程序,输入几个数字,找出正数有几个、负数有几个,大于 30 的有几个。事实上,汇编语言对学习和理解高级语言,比如 C 语言,也有极大的帮助。老教授琢磨了好几天,终于想到一个好的比喻来帮助学生理解什么是指针,实际上,这对于懂得汇编语言的学生来说,根本就不算个事儿,并因此能够使老教授省下时间来喝茶。对于一个国家来说,不能没有人来研究基础学科,尽管它们不能直接产生效益;而对于一个人来说,也不能没有常识。尽管常识不能直接挣钱吃饭,但它影响谈吐,影响你的判断力和决断力,决定着你接受新事物和新知识的程度。相应地,汇编语言就是计算机语言里的常识和基础。这是继《穿越计算机的迷雾》之后,我写的第二本书。这本书与上本书有两点不同,第一,上一本花了 4 年才完成,而这本只用了一年,速度之快,令我自己咂舌;第二,上本书属于科普性质,漫谈计算机原理,这本书就相对专业了。那些还想把我的书当小说看的人,这回要失望了。很多人可能会问我,为什么要写这样一本书。我只能说,我第一次学汇编的经历实在是太深刻了。我第一次学汇编语言是在 1993 年,手中的教材不能说不好,但学习起来实在很吃力。要知道,在那个年代,没有网络,要买到好书,还得到大武汉。就这样,我抱着两本书,反反复复地看,直到半年之后才懂得汇编语言是个什么东西。后来,虽然有心写一本汇编语言的书,一本不一样的汇编语言书,但始终没有时间和精力。时间过得真快,转眼 20 年过去了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !