《汇编语言》这本书是我目前为止读过的最好的教材,整本书的内容充实且具有很强的逻辑性,就像一个排列严谨的拓扑序,打乱任何一章都不行,我认为它有以下鲜明特点:
- 循序渐进:有别于大部分书籍中所谓的循序渐进,本书真正保证了读者在遇到一新的知识点时,不会觉得突兀,让读者有一种我现在确实应该学这个知识点了的感觉。另外,在每一个知识点之间,王爽老师插入了许多能引发人积极思考的问题和小的检测点,这些题不会让人摸不着头绪,觉得遥不可及,也不是显而易见就能找到答案。读者在积极思考这些问题的过程中,不仅能加深对知识点的理解,还能提高灵活运用的能力,甚至会因此想清楚汇编语言在这里为什么要设计成这样。以至于整本书读下来不会给人疲惫的感觉,反而觉得神清气爽,收获颇丰。
- 知识屏蔽:这是本书中我觉得做得最好的一点,它完全保证了读者在学到某一章节时不会用到后面的知识,如果出现了让读者有所不解的现象(比如第二章中,使用Debug单步调试,在执行了mov ss,ax指令后直接跳过了mov sp,10h)会主动提示读者去思考并简单给出结论,而在读者真正具有理解本知识点的基本知识储备的时候再详细讲解产生该现象的原因。
在此引用一段我认为王爽老师说得很对的话吧,基础知识的学习会让人走得更远:
我们都希望学习更新的东西,但学习的过程是客观的。任何合理的学习过程都是一个循序渐进的过程。我们必须通过一个易于全面把握的事物,来学习和探索一般的规律和方法。在你身边可能有这样的故事出现:COOL先生用了3天时间学会了某某语言,并开始编写软件。而一个初学者也去尝试,但却完全是另一种结果了。COOL先生的快速学习只是露出水面的冰山一角,深藏水下的是他较为系统的相关基础知识和相关的技术。
接下来简单总结一下整本书每一章节我阅读时产生的一些思考,还有书中提到过的让我有所收获的小问题:
第1章
第1章主要讲的是一些跟汇编码有关的基础知识,其中一小节解决了我一多年来的疑问——总线是如何传输数据的,因为我曾经以为总线就是一根线,但本章告诉我,总线是很多根线合在一起,而线的数量直接决定了单次所能传输数据的量。一个32位的地址总线一定有32根线,每根线通过高低电平来表示0和1,最终通过这32位的01起到传输32位2进制数的作用。