1第一课.计算机的一般知识1.1电子计算机的发展及其基本结构1.1.1电子计算机的发展史1945年底,在美国首次研制成功人类第一台计算机,这台机器重30吨,占地面积达167平方米,加之它的工作原理,因此,人类后来的计算机并不是在这台机器的基础上发展起来的。现代计算机理论的奠基人是图灵。在美国数学家冯.诺伊曼的主持下,1949年诞生了第一台存储程序的计算机,又称第一代机,这台计算机为后来的计算机发展奠定了基础。1959年,第一台晶体管计算机问世,由此,计算机进入了第二代。1964年,IBM第一代360系列计算机问世,这是第一代通用计算机,为研制这种计算机,IBM投资50亿美元,比二战期间美国政府投入到原子弹研究的钱(20亿美元)还要多;由此,计算机进入了第三代。进入到80年代以后,中大型计算机问世,于是开始了第四代计算机的时代。70年代以后,出现了计算速度更快、存储量更大的巨型机。70年代微处理器的问世,标志着计算机的发展开始了又一场革命。1977年3月苹果公司的个人用计算机问世,自此,计算机开始进入千家万户。1.1.2电子计算机的基本结构计算机由硬件和软件组成。而硬件是由主机和外部设备组成;软件由系统软件和应用软件组成。计算机硬件是软件的基础,是软件发挥功能的工作环境,而软件则是管理和利用硬件资源来实现计算机的功能,软件和硬件是相互促进和发展的。硬件大体上有以下几个部分:控制器,运算器,内存储器(RAM、ROM),输入设备和输出设备。前三者又合称主机,后两者又称作外部设备。现在就这五个部分的功能,作一些简要说明。1.输入设备。输入设备是用来向主机输入原始数据和处理这些数据所使用的计算程序列的设备。输入设备的种类很多,但在微型机上不外乎下列几种:(1)终端键盘。利用手指击键方法向计算机输入信息。用户自己写的程序列化和准备处理的数据,都可由键盘上敲入。(2)磁盘。磁盘,实际上也是存储信息的,因为它们都是主机之外的设备,所以也称为外存储器。外存储器上的信息,也可以输入到机器中去。(3)模—数(A/D)转换器。它可以将连续变化的模拟量(如电压、电流、长度、角度等)转换为数字量,送入到机器中去。此外,图形输入板、声音输入装置等,实际上是专用的模数转换器,同样可以为计算机输入信息。2.输出设备。输出设备是用来输出计算结果或其它信息的。常用的输出设备有:(1)显示终端。用以显示计算机的有关信息,占用户从键盘上敲入并为机器接收的字符、机器清单、机器向用户的提示,程序运行时的输绐(包括数字、文字或图形)等。(2)打印机。显示终端上可显示的东西几乎都可以由打印机打印到纸上。2(3)磁盘。可以用来存储程序和数据(包括数字、文字、图形和声音信息等)。3.主存储器,即内存储器(简称内存)。它用来存放原始数据、处理这些数据的程序以及计算结果(包括中间结果,也包括图形和声音信息等)。系统程序也存放在内存中。内存储器分为一个个单元,好似一间间房子,并按顺序编了号码(从0号开始),通常又称为一个个地址。机器中的所有信息都以一定的规则存放在内存的一个个单元中。对任何一个单元来说,它很象从左到右顺序安放的一排灯泡,每个灯泡代表一位数字:灯泡点亮代表1,灯泡熄灭代表0。于是这一排灯泡就可表示由0和1构成的一个数这排灯泡的个数,就称为位数或字长。目前,一般微型计算机的内存储器是用半导体器件组成的电路制成的,称为半导体存储器。字长,一般取决于微处理器的字长。一般微型机的内存储器又分为两个部分。一部分是随机存储器(RAM),每个单元的数据是可以改变的,而且关电以后所有信息都会自动消失。这类存储器是用户可以使用的空间。另外,还有一部分是只读存储器(ROM),每个单元一信息是固化的,用户只可读出使用,但无法使其改变。任何时候,只要接通电源,这些信息就建立好了。4.运算器。运算器是计算机进行信息加工的场所,所有算术运算逻辑运算等都在这里进行。就象用算盘算题时一样,它只能放当前被操作完的一个数据,中间结果一般配要送内存中保存起来,以备以后使用。所以,没有内存,单靠运算器是无所作为的。5.控制器。它是用来实现计算机各部分协调动作使计算过程自动进行的装置。也就是说,它是计算机内的指挥部。控制器可以向计算机的其它部件发出信号,控制数据的传输与加工;同时,控制器也接收其它部件送来的信号,以便调整其控制功能。所以,在计算机工作时,有两和种信息流:控制流与数据测定流,由控制流控制数据的传输与加工,完成所有的计算动作。这里介绍的运算器、控制器、内存储器、输入输出设备等,都是一些看得见、摸得着的“硬”东西,所以又称它们为“硬件”或“硬设备”。相对地,那些在计算机工作过程中必不可少的数据以及对这些数据进行处理的控制命令等信息流都是摸不着的“软”东西,通常称之为“软件”或“软设备”。易语言本身,属于软件的范畴。1.2计算机中数的表示日常生活中,我们非常习惯使用十进制计数法,可是在日常生活里我们也还会遇到一些另的进制,如二进制(两只为一从)、十二进制(十二英寸为一英尺,十二个月为一年)、十六进制(中国老秤十六两为一斤)、二十四进制(二十四小时为一天)和六十进制(六十分为一小时,六十秒为一分等)等等。在计算机内部,则釆用二进制计数法。为什么计算机要使用二进制计数法呢?这是因为电气元件中两种状态最容易实现(如电路的通断、电位的高低等),也最为稳定,并且最容易实现对电路本身的控制。在计算机里,一般以高电位代表1,低电位代表0。二进制的两个数基,就用0和1来表示。凡够2时,就向左进一位。比如十进制的2,用10表示;十进制的4,用100表示等。用逻辑电路实现二进制数的运算,是极为方便的。用不同进位制表示的数之间,可以根据一定的规则相互转换。1.2.1十六进制数、二进制数、八进制数在计算机内部运算中常用的进位制有4种:3二进制:逢2进1,由数字0和1组成,以下标2或后缀B表示。八进制:逢8进1,由数字0至7组成,以下标8或后缀Q表示。十进制:逢10进1,由数字0至8组成,以下标10后缀D表示,该后缀可以省略。十六进制:逢16进1,由数字0至8和字母A至F组成,以下标16或后缀H表示。例如:二进制数1001010表示为1001010(B)、八进制数234512表示为234512(Q)、十六进制数4523ADF表示为4523ADF(H),十进制数的后缀可以省略。用不同进位制表示的数之间,可以根据一定的规则相互转换。1.十六进制数、八进制数与二进制数之间的转换一位十六进制数用四位二进制数表示,一位八进制数用3位二进制数表示。二进制数转换为十六进制数时,以小数点位置为界,向两侧每四位分组,当两侧不足四位时补0。例如:101010.010101(B)=00101010.01010100(B)=2A.54(H)二进制数转换为八进制数时,以小数点位置为界,向两侧每三位分组,当两侧不足三位时补0。例如:101010.010101(B)=101,010.010,101(B)=52.25(Q)十六进制数转换为二进制数时,以小数点为界,每一位十六进制数转换为四位二进制数向两侧排列;八进制数转换为二进制数时,以小数点为界,每一位八进制数转换为三位二进制数向两侧排列。1.2.2十进制数和二进制数之间的转换把一个十进制数转换为二进制数,方法如下:把这个十进制数反复地除以2,直到商为零,所得的余数(从末一位读起)就是这个数的二进制表示。如十进制的11,反复用2除:用二进制表示,是1011。换句话说,把一个十进制数化成以2为底的指数形式,则它的系数(由高次到低次)就是其二进制表示的数。像上面提到的十进制数11,换成以2为底的指数形式为:11=1×23+0×22+1×21+1×20把它的系数顺序排列起来,就是1011,这就是它的二进制表示。反之,一个二进制数它的十进制表示,就可以用1×23+0×22+1×21+1×20=11换言之,将一个二进制数转换成十进制数的方法是:将这个二进制数的最末一位乘以20,倒数第2位乘以21,……最后将各项相加即可。1.2.3十进制数与十六进制数的转换在计算机内,所有的数都是用二进制表示的(电位的高低表示1或0)。然而,如果让人们对任何二进制数能象对十进制数那样一目了然,实在不是一件容易的事。这一方面由于4人们用二进制数终归没有用十进制数来得那么普遍与习惯;另一方面,用二进制表示一个数时,其位数较长(比如大于十进制63的数,用二进制表示至少要6位),且每位数只有0和1可资区别。为此,人们引进了八进制和十六进制的表示方法。必须指出,八进制或十六进制并不是机器中的某一位有八种状态或十六种状态,在机器内仍是以二进制为藉款础的(每一位只可有两种状态),只是为着输入或输出一个二进制数的方便,击机器内的二进钥数从右向左每三位分作一组,每组便可表示0-7的某个数,显然最右一组满8时要向左邻一组进1,于是这三位一组构成了八进制数。类似地,把二进制数从右到左每四位分作一组,每组表示0-15中的某个数,这一组一组就构成了十六进则数。目前用十六进制表示较为普遍。可以想见,把两个四位连在一起可以用两个十六进制数表示,其数值范围可为十进制数的0到255,共256个数,选用它们来代表所有英文字符的内部编码(以便用二进制数代表字符)是足够使用了。因此又把两个十六进制数作为一个基本单位,称作“字节”。十六进制数的表示法,0-9仍沿用十进制中的0-9,接下去的六个数依次用A、B、C、D、E、F表示。因此,十进制的0-16表示成二进制数和十六进制数。如下表所示。十进制表示二进制表示十六进制表示01234567891011121314151601101110010111011110001001101010111100110111101111100000123456789ABCDEF10十进制数和十六进制数之间的转换,类似于十进制数和二进制数之间的转换。把一个十进制数反复地除以16,直到商为0,将所有余数(从末一个起)顺序排列起来,就是这个数的十六进制表示。如,十进制的2695转换为十六进制数为10D,反之,把一个十六进制数的末位乘以160,倒数第二位乘以161…再将各项累加,所得的数就是那个十六进制数的十进制表示。如:10D=1×162+0×161+13×160=269关于八进制数及其与十进制数之间的转换,不再叙述,请读者自己考虑。1.3计算机语言人们进行思维活动或人与人之间交流思想,要通过语言,计算机进行或人与计算机交流信息,也需要通过语言。这就是计算机语言。计算机语言是用来指明让计算机依次做些什么事情的,所以又称为程序设计语言,这种语言有其自身的特点和发展过程。1.3.1机器语言前文提到,计算机的指挥中心是控制器,且计算机中的数都是用二进制数表示的。实际上,控制器也是用二进制数的0或1(即低电平、高电平)来实现其控制功能的。原来,任何一种电子计算机,都是一套指令系统,由若干条指令组成,每条指令都可指挥计算机实现某些功能。一条指令,通常由操作码和操作数两部分构成。操作码由若干位二进制数组成,由于这若干位0和1(即低电位、高电位)的不同组合,因而能使计算机产生不同的。操作数部分也是由若干位二进制数构成,它指明被操作的对象。一般地,它可以是被操作数的本身,也可是被操作数在内存中存放的地址,甚至不指明操作数部分(有时是隐含的)。如果操作数部分指明的是地址,不同类型的机器待,又可能只指明一个地址(被操作数地址)、或指明两个地址(两个操作数的地址,或一个被操作数地址,一个操作结果存放地址),或指明三个地址(被操作的两个数的地址和操作结果存放地址)等等,它们分别被称为一地址、二地址或三地址指令。控制器每遇到一个操作码,就会产生不同高低电位的组合,控制机器作相应的动作。地圵部分的不同高低电位组合,又会指向相应的被操作对象。从而完成一条指令的功能。一条条指令执行完结,运算就告结束。由于指令的操作码会直接使机器产生相应动作,操作数部分会直接指向被操作对象,所以用一条条指令写成的机器语言程序,能为机器直接认识。换之,机器语言是计算机能懂得的唯一语言。用机