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