主页 > 学生园地 >
 
图文资讯
学生园地

高级语言、汇编语言、机器语言的区别?

学生园地 | 2020-03-28 | 标签:高级,语言,汇编语言,机器,区别,从左,分别为,高级,语言,

图:从左至右分别为:高级语言、汇编语言、机器语言
 
计算机是不能直接识别我们所编写的Java程序或者Python程序的。它只能识别机器语言,而机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指指令系统令的集合。
 
 
1
机器语言
 
早期计算机就是指可以执行机器指令,进行运算的机器。在我们常用的PC机中,有一个芯片,就是我们常说的CPU(Central Processing Unit,中央处理单元)可以完成前面所说的计算机的功能。
 
但是每一种这样的微处理器(CPU)由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。
 
早期的程序设计均使用机器语言。程序员们将用0, 1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。
 
用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。
 
手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。
 
这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍,而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。
 
那么该怎么办呢?这时候汇编语言便产生了。(现在除了计算机生产厂家的专业人员外,一般是不需要学习机器语言了)
 
 
 
2
汇编语言
 
汇编语言的产生正是因为人们看到了机器语言太麻烦。汇编语言和机器语言的主要差别在于指令的表示上,用到了助记符这样的东西。汇编指令和机器指令一一对应。
 
比如说这样一条汇编指令:“MOV AX,BX” 它表示把寄存器BX的内容送到AX寄存器中;而其对应的机器指令是“1000100111011000”。
 
可以看出,比起机器语言的0,1,汇编语言这样的形式更接近我们的自然语言,更容易记忆。
 
可能有人会问,我们用汇编语言编写程序,可是计算机只认识机器指令,那该怎么办?
 
这时候就需要一个能将汇编语言转换成机器指令的工具,我们称其为编译器。程序员用汇编语言写出源代码,再用汇编编译器将其编译为机器码,最后由计算机执行。
 
图:汇编语言编写程序的工作过程
 
汇编语言是直接面向处理器(Processor)的程序设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。
 
每一种处理器都有自己可以识别的一整套指令,称为指令集。处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。
 
汇编语言的另一个特点就是它所操作的对象不是具体的数据,而是寄存器或者存储器。也就是说它是直接和寄存器和存储器打交道,这也是为什么汇编语言的执行速度要比其它语言快,但同时这也使编程更加复杂。
 
因为数据是存放在寄存器或存储器中,必然存在着寻址方式,也就是用什么方法找到所需要的数据。
 
例如上面的例子,我们就不能像高级语言一样直接使用数据,而是先要从相应的寄存器AX、BX 中把数据取出。
 
这也就增加了编程的复杂性,因为在高级语言中寻址这部分工作是由编译系统来完成的,而在汇编语言中是由程序员自己来完成的,这无疑增加了编程的复杂程度和程序的可读性。
 
再者,汇编语言指令是机器指令的一种符号表示。不同类型的CPU 有不同的机器指令系统,也就有不同的汇编语言,所以,汇编语言程序与机器有着密切的关系。
 
除了同系列、不同型号CPU 之间的汇编语言程序有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU 之间的汇编语言程序是无法移植的,也就是说,汇编语言程序的通用性和可移植性要比高级语言程序低。
 
 
3
高级语言
 
前面的机器语言和汇编语言我们都有一定了解了,汇编语言也是和机器语言一样,都是直接对硬件进行操作,但是汇编语言指令采用了英文缩写的标识符,更容易识别和记忆。
 
但是说起来更容易识别和记忆,也只是相对于机器语言而言的。在实际编程中,汇编语言源程序也是十分复杂和冗长的,这时候高级语言产生了。
 
高级语言并不是指一种语言,而是包括很多编程语言,比如Java、C、C++、C#、python等等,是高度封装的编程语言。
 
高级语言与计算机的硬件结构和指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。
 
但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。
 
从最开始我们给出的一张图也可以看出,C语言写出的短短几行代码,翻译成汇编语言会多很多,更不用说变成机器语言了。
 
 
4
总结
 
计算机语言的经历了机器语言、汇编语言和高级语言三个阶段。机器语言始终是最基础的语言,是计算机唯一可辨认的语言,汇编语言和高级语言的执行都离不开机器语言。
 
从编程的角度出发,运用高级语言比汇编语言来得容易,可是高级语言程序运转的速度较慢,而汇编语言编制的程序运转速度较快。
 
因而,如何在汇编语言和高级语言之间选择,完全取决于实际应用的要求。
 


上一篇:2020年热门计算机编程语言_Java,BASIC C,C++,VB,VF,SQL 下一篇:山东科技大学2020年第一期创新创业大讲堂“云端”开讲