汇编和c哪个更难,怎么看懂汇编代码( 二 )



打个比方说 , 它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标) 。 没有这些特殊的指令 , 就不能执行预期的任务 。 计算机也一样 , 当你想让计算机为你做一件事情的时候 , 计算机本身并不能主动为我们工作 , 因此我们必须对它下达指令 , 而它根本不会也不可能听懂人类自然语言对事情的描述 , 因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令 , 例如如何取得击键 , 怎样在屏幕上放一个字母 , 怎样在磁盘中保存文件等等 。
这么麻烦 , 连这些东西编程都要考虑!怪不得人家说编程好难!你错了 , 其实许多这样的指令都是现成的 , 包含在处理芯片中内置于操作系统中 , 因此我们不必担心它们工作 , 他们都是由处理器和操作系统来完成的 , 并不需要我们来干预这些过程 。

上面讲到的计算机本身不会主动的做任何事情 。 因此我们要通过程序的方式来让计算机为我们“效劳” 。 而这个过程就是我们“编”出来的 。 编程可以使用某一种程序设计语言来实现 , 按照这种语言的语法来描述让计算机要做的事情 。

我们这里所讲的语法和外语中的语法完全两码事 , 这里讲的语法只是读你的程序书写做出一写规定而已 。

写出程序后 , 再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言” , 然后计算机就可以“听得懂”你的话了 , 并会按照你的吩咐去做事了 。 因此 , 编程实际上也就是“人给计算机出规则”这么一个过程 。
随计算机语言的种类非常的多 , 总的来说可以分成机器语言 , 汇编语言 , 高级语言三大类 。
电脑每做的一次动作 , 一个步骤 , 都是按照已经用计算机语言编好的程序来执行 , 程序是计算机要执行的指令的集合 , 而程序全部都是用我们所掌握的语言来编写的 。 所以人们要控制计算机一定要通过计算机语言向计算机发出命令 。

计算机所能识别的语言只有机器语言 , 即由构成的代码 。 但通常人们编程时 , 不采用机器语言 , 因为它非常难于记忆和识别 。

目前通用的编程语言有两种形式:汇编语言和高级语言 。

汇编语言的实质和机器语言是相同的 , 都是直接对硬件操作 , 只不过指令采用了英文缩写的标识符 , 更容易识别和记忆 。 它同样需要编程者将每一步具体的操作用命令的形式写出来 。

汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作 , 例如移动、自增 , 因此汇编源程序一般比较冗长、复杂、容易出错 , 而且使用汇编语言编程需要有更多的计算机专业知识 , 但汇编语言的优点也是显而易见的 , 用汇编语言所能完成的操作不是一般高级语言所能实现的 , 而且源程序经汇编生成的可执行文件不仅比较小 , 而且执行速度很快 。

高级语言是目前绝大多数编程者的选择 。 和汇编语言相比 , 它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节 , 例如使用堆栈、寄存器等 , 这样就大大简化了程序中的指令 。 由于省略了很多细节 , 所以编程者也不需要具备太多的专业知识 。

高级语言主要是相对于汇编语言而言 , 它并不是特指某一种具体的语言 , 而是包括了很多编程语言 , 如目前流行的VB、VC、FoxPro、Delphi等 , 这些语言的语法、命令格式都各不相同 。

(1)解释类:执行方式类似于我们日常生活中的“同声翻译” , 应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言) , 一边执行 , 因此效率比较低 , 而且不能生成可独立执行的可执行文件 , 应用程序不能脱离其解释器 , 但这种方式比较灵活 , 可以动态地调整、修改应用程序 。

推荐阅读