《程序是怎样跑起来的》了解汇编语言的好处

前言

这两天阅读了《程序是怎样跑起来的》,本书从计算机的内部结构开始讲起,以图配文的形式浅显地讲解了程序从鼠标双击到运行时,计算机是怎么处理的等内容。其和《计算机是怎样跑起来的》是一对,分别对应着《计算机科学导论》,《计算机组成原理》这两本大部头,对读不进去大部头,但又想了解程序是如何运行的小白来说可是福音。

其中读到关于作者对汇编语言的看法令人印象深刻,在此记录下。

简介

《程序是怎样跑起来的》是日本作家失泽久雄先生写于2001年,在2015年引入了我国,受到了很大的欢迎,短短的几年,重印40多次。作者曾在某大型电子公司从事过电脑生产,在Software House做过程序员,现主要从事软件包的开发工作。工作之余笔耕不缀,从电路到编程语言均有涉及。代表作有《计算机是怎样跑起来的》《使用C语言学习程序设计的基础》《征服C++类和继承》等。自称软件艺人。

在这里插入图片描述

汇编语言的简介

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。是自机器语言之后的第二代编程语言。

现在基本上很少有人用汇编语言来编写程序了,在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序需要使用汇编语言。

计算机CPU能直接解释运行的只有本地代码(机器语言)程序。用C语言等编写的源代码,需要通过各自的编译器编译后,转换成本地代码。通过调查本地代码的内容,可以了解程序最终是以何种形式来运行的。但是,如果直接打开本地代码来看的话,只能看到数值的罗列。如果直接使用这些数值来编写程序的话,不容易让人理解。因而人们想出了一种办法,那就是在各本地代码中,附带上表示其功能的英语单词缩写。例如,在加法运算的本地代码中加上add(addition的缩写)、在比较运算的本地代码中加上cmp(compare的缩写)等。这些缩写称为助记符,使用助记符的编程语言就叫做汇编语言啦。这样,通过查看汇编语言编写的源代码,就可以了解程序的本质了。因为这和查看本地代码的源代码,是同一级别的,这也是作者推荐大家去学习汇编语言的原因。

对于汇编语言的看法

汇编语言尽管相对于机器语言来说,其加上助记符已经比较容易理解了,但内容还是不易阅读,除非熟练掌握了汇编语言的助记符。况且C、Java、等高级语言用1行就可以完成的处理,使用汇编语言的话有时就需要多行,效率很低。不过理解汇编语言对想成为专业程序员的人来说还是很有用的,本书作者也建议人们可以将C语言编写的源代码转换成汇编语言的源代码,这样有助于人们更好地了解计算机的机制。

其中作者对汇编语言的举例很是生动形象。

下面让我们以开车为例进行说明。没有汇编语言经验的程序员,就相当于只知道汽车的驾驶方法而不了解汽车结构的驾驶员。对这样的驾驶员来说,如果汽车出现了故障或者奇怪的现象,他们就无法自己找到原因。不了解汽车结构的话,开车的时候还可能会浪费油。这样的话,作为职业驾驶员是不合格的。于此相对,有汇编语言经验的程序员,也就相当于了解计算机和程序机制的驾驶员,他们不仅能自己解决问题,还能在驾驶过程中省油。——《程序是怎样跑起来的》

读完是不是对汇编语言有了一丝丝“心动”?心动不如行动,说不定这正是你我咸鱼翻身当大牛的第一步呢(~ ̄▽ ̄)~。
在这里插入图片描述
不过我是没有心动,毕竟连基本的C语言语法都还没掌握熟练,所以先将这份心动埋在心底吧。
最后附上一段作者对于学习C语言的看法

不仅仅是C语言,学习所有编程语言的语法结构,都不应该是囫囵吞枣地背下来。只有多做上机练习并反复确认运行结果,才能征服这门语言。“了解语法结构但不会编写程序”和“知道英语语法却不会说英语”是同样的。不管是C语言还是英语,都是从实践中得来的。——《程序是怎样跑起来的》

猜你喜欢

转载自blog.csdn.net/weixin_45797022/article/details/105642116