背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-6142.html    注册17xie 一起来写书 实现您的出书梦想!

 

1.8  从机器语言到高级语言

1.8.1  机器语言

在上一节里已经看到了直接用“1”、“0”组成的机器指令编写的程序,这就是机器语言源程序。对计算机来说,这是它唯一能直接“听”得懂的语言。所以,常常称之为面向机器的语言。但是,对使用计算的人来说,这是十分难懂的语言,它难读、难记、难写,容易出错,不同机型又不通用。显然人和机器之间的通信存在巨大的鸿沟,只有填这补上这个鸿沟,使用的愈是方便容易,机器又能懂得,计算机才能发挥更大的作用。为此,人们研究了一种汇编语言。

1.8.2  汇编语言

把用二进制数表示的指令,用一些符号来表示,如用表示操作的英文缩写来代替指令代码,用16进制数表示数字,上一节中的几条指令就可写出为如下形式:

LD                                A                     2BH

LD                                HL                   2CH

ADD                            A                     HL

LD                                2DH            A

n         1LDLoad的缩写,表示“取数”的操作,A表示累加器,(2BH)括号内的十六进制数是内存地址。它的含义是把存放在内存第43号地址的数(已存放有数“5”)取出来,放到累加器A中。

n         2LD仍为取数,HL表示一个暂时存放数据的寄存器名,它的含义是把内存地址号44(表示为十六进制数2CH),放在寄存器HL中。

n         3ADD是“加”的意思,操作数中指出把AHL所指示的44号地址中存放的数相加(即将56相加,结果为11),并把结果放在A中。

n         4LD,送数,把计算结果11A中送到内存地址为45(表示为十六进制数2DH)的存贮单元存放。

这种用符号代替后的指令,就叫汇编语言,又称符号语言,像LDADD等这类符号称为指令符号或助记符。用汇编语言编写的程序,称为汇编语言源程序,常简称为汇编语言程序。

这种语言,相对机器语言就容易读、容易写了。但是,机器却一点也不懂了。因此,计算机是无法直接执行的。一个不懂汉语的外国人到中国来要和中国人直接交谈,那是无法进行对话的,所以,只好求助翻译。在计算机中,也同样采取这种方法,人们编写程序用汇编语言,然后请一位翻译,把汇编语言程序翻译成机器难懂得的机器语言程序,这个翻译过程,叫做“汇编”。汇编后产生的机器代码称为目标程序。翻译可以由人手工完成,但做起来即繁琐单调,又容易出错。实际上,我们是让计算机来做。因而就研制出了担任翻译的程序,取名叫汇编程序。汇编过程如图1-2所示。

1-2  汇编过程

汇编语言使程序设计工作前进了一大步,但是仍然存在很多缺点,第一、不便于我们求解问题过程的描述,如一个数学公式,汇编语言的表达形式与人们的习惯表达形式差别很大;第二、它仍是面向机器的语言,不同机型,汇编语言也不一样,因而用它编制的程序,没有通用性。为了克服这些不足之处,人们进一步研制出了高级语言。

1.8.3  高级语言

它是用更接近人的自然语言和数学表达式的一种语言,它由表达不同意义的“关键字”和“表达式”,按照一定的语法语义规则组成,完全不依赖机器的指令系统。这样的高级语言为人们编制程序提供了很大的方便,编制出来的程序易读易记,也便于修改、调试、大大提高了程序的效率,也大大提高了程序的通用性,便于推广交流,从而极大的推动了计算机的普及与应用。

我们看到高级语言离人们的理解愈加接近了,但离计算机的理解就越来越远了。计算机是不能直接理解那些英语单词、数学表达式的。所以,为了填补人机之间的鸿沟,还是得求助翻译。把高级语言翻译成机器能懂的机器语言,这一翻译过程,我们称为“编译”,如图1-3所示。用高级语言编写的程序称为高级语言源程序(Source)来做,这个编译程序也是人们设计并事先装入计算机的。没有这一程序,高级语言源程序就无法在计算机中执行。

1-3  编译过程

因此,高级语言源程序从输入程序到执行程序都要经过编译,一般是把整个源程序编译成目标程序后,再执行目标程序。不过,有的高级语言与此稍有差别,如较早的BASIC语言,源程序是翻译下一个语句就执行一个语句,边翻译一个语句就执行一个语句,边翻译边执行,并不生成目标程序,这一过程取名叫解释,担任翻译工作的称为解释程序,这也是人们设计并事先装入计算机的。

世界上已有一百多种高级语言,最流行的有十几种,例如:

1FORTRANFormula Translator的缩写)。它是世界上最早出现的高级语言,从1954年问世以来,经过几次大的发展,功能有很大的增强。现在流行的是FORTRAN 77版本。它特别适于作科学、工程计算。

2COBOLCommon Business Language的缩写)。适于作非数值计算的商业、管理领域。

3PASCAL语言是最早出现的结构化语言,适用于计算机教育。

4PL/I语言是一种大型语言,功能强,数值计算和数据处理均适用。

5Ada语言是一种工程化的大型语言,适合于大型软件工程。

6C语言是广泛推广的结构化语言,适于编写系统软件。

7BASIC语言是一种简单易学的会话式语言,在世界上应用最广泛。

1.9  计算机的软件系统

计算机的软件系统是计算机中各种程序的集合。如上节提到的各种高级语言的编译程序,都属于软件。只有这些软件还不够,为了扩充和增强计算机的功能,软件的种类和数量是很多的。一般分为系统软件和应用软件。

1.9.1  系统软件

1)操作系统(Operating System

它是软件系统的核心,无论是大中型还是微型机,操作系统都是必不可少的,它是对计算机系统的资源(包括硬件和软件的各种资源)进行管理和控制的程序。任何一个用户都是通过操作系统来使用计算机的。

不同的机型可能配备不同的操作系统。一般现在微型计算机用户使用的是Windows 98视窗操作系统,最新的版本是Windows 2000,在出现图形界面操作系统以前流行的是一种叫DOS(即Disk Operating System)的磁盘操作系统。对于用户来说,并不需要了解操作系统的原理和细节,只要会使用操作系统就行了。除WindowsDOS而外,还有UNIXLINUX等操作系统,也正逐步推广。

2)各种语言处理程序,如BASICFORTRANCOBOLPASCALC等高级语言的编译程序、汇编程序等。

3)各种面向用户的服务程序,如文本编辑程序、调试程序等。

4)各种面向计算机维护的诊断、测试程序。

1.9.2  应用软件

它是面向各种应用领域的专用软件,是十分丰富的,有的具有通用性,很多行业都可使用,如科学计算程序包、统计分析程序包、各种数据库管理系统等等。

为了便于人们使用,充分发挥计算机的效率、尽量扩展计算机的功能,因此就需要有多种多样的软件,一台计算机不但要有性能良好的硬件系统,更要有丰富多彩的软件系统。随着计算机应用的日益广泛深入,软件的研究和开发越来越显示出它的重要性,并已形成软件产业,现在往往一个计算机系统的软件研制费用大大超过硬件的研制费用。

1.10  本章小结

1.计算机不仅仅是一个计算工具,更主要地它是信息处理的工具;它具有速度快、容量大、精度高、能逻辑判断、自动连续运行、可靠性好等特点,在国民经济领域以至在人们日常生活中得到了广泛的应用。电子信息技术将成为社会生产力发展的主要因素。

2.计算机是利用电子器件的特性来工作的,因此基于电子器件的开和关的两个不同状态而与二进制数学结下了不解之缘,因此,计算机能直接处理以01这两个简单的符号为基础的各种信息编码,如数的编码、符号的编码、指令的编码。由此而产生的更为复杂的各种语言、各种软件。最终都要归结到计算机能识别的01构成的符号串上。

3.对于一个完整的计算机系统的组成可见图1-4所示。

1-4  计算机系统组成

 

1.把以下十进制数换算成二进制数:

157      21.125      1106     10.3    216.005

2.把以下二进制数换算成十进制数:

0100     1101     1101001     100111101.1111    110100111.001

3.把以下十六进制数换算成二进制数:

E     2C     FFFF     A21     BC.2A

4.把以下二进制数换算成十六进制数:

1011     11000101010     100110001     11001000.001     1011110001.1

5.当你正在计算机的键盘上输入一批数据(或一段程序)时突然电源掉电,你的数据还会在内存中吗?为什么?

6.什么是汇编程序、编译程序、解释程序?分别说明它们的功能?

字数:5304    最后更新:1年以前 [08-20 20:37]我爱钱 修改
本页编辑者:我爱钱  
[前一页]:第一章  [后一页]:第二章 算法与程序设…
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号