计算机中几个语言的理解
2017-06-01刘昆
刘昆
摘要:计算机组为什么有别于其他人类发明的工具,能够自动、准确的执行人们事先编制好的程序,要回答这个问题,就需要大家对机器语言、汇编语言、计算机高级语言进行理解,该文结合多年的教学经验,使用简单的例子对机器语言、汇编语言、计算机高级语言三种语言进行比较,使读者很容易理解三种语言。
关键词:机器语言;汇编语言;计算机高级语言
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)08-0093-02
计算机组为什么有别与其他人类发明的工具,能够自动、准确的执行人们事先编制好的程序?要回答这个问题我们必须理解机器语言、汇编语言、计算机高级语言。计算机高级语言很多人接触到或者学习过不难理解;但是机器语言、汇编语言很少有人接触,包括计算机专业的学生,这些年也逐渐不再开设汇编语言程序设计课程。计算机的层次结构如图1。
1计算机的机器语言
很多教材对计算机的机器语言概括为计算机能直接执行的语言,用户必须用二进制(0,1)来编写程序,要求程序员对所使用的计算机硬件及其指令系统十分熟悉。这样的解释很抽象也很难理解。其实机器语言并不难理解,我们用教室的电灯系统来举例,用Ki表示对应的开关;用1表示开关闭合,用0表示开关断开;假如教室里有4个开关,分别控制不同的电灯。则教室里电灯系统的指令系统用二进制(0、1)表示出来如表1。
這里的指令系统中0000表示全灭,1111表示全亮。根据这个指令系统编写了某个程序,Ti表示指令执行的时间周期。程序如表2所示。
这是与电灯系统为例。如果以某机器为例,对ax2+bx+c进行运算,进行程序优化为(ax+b)*x+c;具体机器语言步骤如图2。
2汇编语言
通过上面两个例子对机器语言能更好地理解。汇编语言是在机器语言的基础上出现了符号式的程序设计语言。它用符号ADD表示加;SUB表示减;MUL表示乘;D1V表示除;MOV表示取数等。用汇编语言ax2+bx+c进行运算程序如下。
数据段定义a,b,c,x;
代码段如下MOV A CCX;取数x至ACC;
MUL a;ACC的值乘于a,放到ACC中,即a*x->ACC;
ADD b;ACC的值加b,放到ACC中,即a*x+b->ACC;
MUL x;ACC的值乘于X,放到ACC中,即(a*x+b)*x->ACC;
ADD c;ACC的值加c,放到ACC中,即(a*x+b)*x+c->ACC;
MOV result,ACC;把结果从ACC送到result单元。
通过这个程序可以知道,汇编语言与机器语言是一一对应的,故需要程序员对计算机的硬件、结构和指令系统都要熟悉。
3高级语言
高级语言对问题的描述十分接近人们的习惯,跟数学逻辑类似,并且有较强的通用性。如FORTRAN.BASIC、PASCAL、C等,比如C语言编写ax2+bx+c进行运算程序如下。
4总结
通过对ax2+bx+c分别采用机器语言、汇编语言和高级语言(c程序)进行编程,让大家体会、理解三种语言的功能。三种语言是一层层堆积起来的,从有了计算机的硬件,就有了机器语言,在机器语言的基础上开发出汇编程序,从而有了汇编语言;在汇编语言的基础上开发出支持高级语言的环境,从而有了高级语言,使大家可以方便地使用高级语言编程。但最终高级语言要转换成机器语言才能在计算机上运行。