计算机理论基础.docx
- 文档编号:5136141
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:77
- 大小:182.58KB
计算机理论基础.docx
《计算机理论基础.docx》由会员分享,可在线阅读,更多相关《计算机理论基础.docx(77页珍藏版)》请在冰豆网上搜索。
计算机理论基础
1.1计算机中的编码
1.1.1.数字编码
由于二进制有很多优点,所以计算机中的数用二进制表示,但人们与计算机打交道时仍然习惯于用十进制,在输入时计算机自动将十进制转换为二进制,而在输出时将二进制转换为十进制。
为便于机器识别与转换,计算机中的十进制数的每一位用二进制编码表示,这就是所谓的十进制数的二进制编码,简称二—十进制编码(BCD)。
二—十进制编码的方法很多,最常用的是8421BCD码。
8421BCD码有十个不同的数字符号,逢十进位,每位BCD码用四位二进制表示。
例如:
83.123对应8421BCD码是10000011.000100100011
同理,11110010010.00100101BCD码对应的十进制数十792.25。
1.1.2.字符编码
字母、数字、符号等各种字符也必须按照特定的规则用二进制编码才能在计算机中表示。
字符编码的方式很多,世界上最普遍采用的一种字符编码是ASII码(美国信息交换标准码)。
ASCII码用7位二进制编码,它有128种组合,可以表示128种字符。
包括0~9,十个阿拉伯数字字符,大、小写英文字母(72个),常用标点符号和各种控制字符,参见附录1。
在计算机中用一个字节表示一个ASCII码字符,最高位置为0。
例如,00110000~00111001(即30H~39H)是数字0~9的ASCII码,而01000001~01011010(即41H~5AH)是大写英文字母A~Z的ASCII码。
详见ASCII字符表。
1.1.3.汉字编码
用计算机处理汉字,每个汉字必须用代码表示。
键盘输入汉字是输入汉字的外部码。
外部码必须转换为内部码才能在计算机内进行存储和处理。
为了将汉字以点阵的形式输出,还要将内部码转换为字型码。
不同的汉字处理系统之间交换信息采用交换码。
(1)外部码
汉字主要是从键盘输入,每个汉字对应一个外部码,外部码是计算机输入汉字的代码,是代表某一个汉字的一组键盘符号。
外部码也叫输入码。
汉字的输入方式不同,同一个汉字的外部码可能不一样。
目前已有数百种汉字外部码的编码方案,大致可以归纳为四种类型:
数字吗、音码、形码和音形码。
数字吗是将汉字按照某种规律排序,然后赋予它们数字编号,这个数字编号就作为汉字的编码。
常见的数字码,如区位码等,这种编码方式无重码,可以找到其他编码方式难于找到的汉字,但难于记忆,要有手册备查。
音码是以汉语拼音作为汉字的编码,只要学过汉语拼音,一般不需要经过专门训练就可以掌握,但是,用拼音方法输入汉字同音字很多,需要选字,影像输入速度,不知道读音的汉字也无法输入。
形码是一个汉字拆成若干偏旁、部首、字根,或者拆成若干笔画,使偏旁、部首、字根或笔画与键盘对应编码,按字型敲键输入汉字。
形码输入汉字重码率低、速度快,只要能看到的字行就可以拆分输入,但必须要经过专门训练,并且需要记忆大量的编码规律和汉字拆分原则。
最常见的形码方案有五笔字型码等。
音形码是拼音和字型相结合的一种汉字编码方案,如自然码、钱码等。
(2)内部码
汉字内部码也称汉字内码或汉字机内码。
在不同的汉字输入方案中,统一汉字的外部码不同。
但同一汉字的内部码是惟一的。
内部码通常使用其在汉字字库中的物理位置标示,可以用汉字在汉字字库中的符号或者用汉字在汉字字库的存储位置标示。
汉字在计算机中至少要用两个字节表示(有用三字节、四字节表示的),在微型计算机中常用的是两字节汉字内码两字节汉字内码,就是汉字的国标码(用两个7位编码)的两个字节的最高位都改为“1”形成的。
例如汉字“啊”,国标码为0110000,01000001,即30H,21H;内部码为10110000,10100001,即B0H,A1H。
在计算机中通常处理的是以ASCII码表示的字符,一个字符在机器内以一个字节的二进制编码表示。
实际上ASCII码只需7位,故在计算机内的字符编码的最高位是“0”。
由此可见,以字节的最高位是0还是1。
很容易区分是ASCII字符还是汉字。
(3)交换码
计算机之间或计算机与终端之间交换信息的时,要求其间传送的汉字代码信息要完全一致。
为此,国家根据汉字的常用程度定出了一级和二级汉字字符集,并规定了编码,这就是国标GB2312-80《信息交换用汉字编码字符集基本集》,GB2312-80中的汉字的编码即国标码。
该标准编码字符集共收录汉字和图形符号7445个,其中包括:
一般符号202个,包括间隙符、标点、运算符、单位符号和制表符等。
②符号60个,包括1.~20.(20个),
(1)~(20)(20个),①~⑩(10个)和
(一)~(十)(10个)。
③数字22个,包括0~9和Ⅰ~Ⅻ。
④英文字母52个,大、小写各26个。
⑤日文假名169个,其中平假名83个,片假名86个。
⑥希腊字母48个,其中大、小写各24个。
⑦俄文字母66个,其中大、小写各33个。
⑧汉字拼音符号26个。
⑨汉字注音字母37个。
⑩汉字6763个。
这些汉字分为两级,第一级汉字3755个,第二级汉字3008个。
这个字符集中的任何一个图形、符号及汉字都是用两个7位的字节表示(在计算机中当然用两个8位字节,每个字节的最高位为1来表示)。
其中汉字占6763个。
第一级汉字3755个,按汉语拼音字母顺序排列,同音字以笔画顺序为序;第二级汉字3008个,按照部首顺序排列。
GB2312-80中,7445个字符和汉字分布在87个区中,每区最多94个字符。
分布情况如下:
1~9区图形字符
10~15区空间未用
16~55区一级汉字
56~87区二级汉字
在GB2312-80标准中,对每个图形字符或汉字给出了两种汉子代码。
一种是用两个字节二进制数给出的国标码(即内部码中所用到的);另一种是四位十进制区位码,其中高2位是某种字符或者汉字所在的区号,低2位是在区中的位置号。
例如“啊”字的国标码是3021H,区位码是1601H。
(4)输出码
汉字输出码又称汉字字型码或汉字发生器的编码。
众所周知,汉字无论字形有多少变化,也无论笔划有多有少,都可以写在一个方块中;一个方块可以看做m行n列的矩阵,称为点阵。
一个m行n列的点阵共有m×n个点。
例如16×16点阵的汉字,共有256个点。
每个点可以是黑点或者非黑点,凡是笔划经过的点用黑点,于是利用点阵描绘出了汉字字形,汉字的点阵字形在计算机中称为字模。
在计算中用一组二进制数字表示点阵,用二进制数1表示点阵中的黑点,用二进制数0表示点阵中的非黑点。
一个16×16点阵的汉字可以用16×16=256位的二进制数来表示,这种用二进制数来表示汉字点阵的方法称为点阵的数字化。
汉字字形经过点阵的数字化后转换成一串数字,称为汉字的输出码。
图1-8汉字“中”的16×16点阵字模
同一汉字的输出码,即字型码,因选择点阵的不同而不同。
一个字节包含8和二进位,所以16×16点阵汉字需要2×16=32个字节表示;24×24点阵汉字需要3×24=72个字节表示;32×32点阵汉字需要4×32=128个字节表示。
点阵的行列数越多,所描绘的汉字越精细,但占用的存储空间越多。
16×16点阵基本能表示GB2312-80中的所有简体汉字。
24×24点阵则能表示宋体、楷体、黑体等多字体的汉字。
这两种点阵是比较常见的点阵,前一种一般用于显示,而后一种一般用于打印。
除此之外,还有32×32、40×40、48×48、64×64、48×72、96×96和108×108等点阵,这些主要用于印刷。
1.2计算机基础
1.2.1.计算机的发展
自1946年世界上第一台电子计算机问世以来,计算机技术得到了突飞猛记得发展。
短短40多年的时间,已经历了四代的更替:
电子计算机、晶体管计算机、集成电路计算机和大规模、超大规模集成电路计算机。
20世纪80年代初日本和美国又分别宣布了第五代“非冯·诺依曼”计算机和第六代“神经”计算机的研制计划。
计算机按其性能、价格和体积的不同,一般分为5大类:
巨型机、大型机、中型机、小型机和微型计算机。
微型计算机是20世纪70年代初研制成功的。
一方面由于军事、空间及自动化技术的发展需要体积小、功耗低、可靠性高的计算机,另一方面,大规模集成电路技术的不断发展也为微型计算机的产生打下了坚实的物质基础。
微处理器是微型计算机的核心芯片,通常简称为μP或MP(MicroProcessor),它是将计算机中的运算器和控制器集成在一片硅片上制成的集成电路。
这样的芯片也被称为中央处理单元,简称为CPU(CentralProcessingUnit)。
微型计算机简称为μC或MC(MicroComputer),它是有微处理器、适量内存和I/O接口电路组成的计算机。
30多年来,微处理器和微型计算机获得了极快的发展,几乎每两年微处理器的集成度翻一番,每2~4年更新换代一次,现已进入第六代。
1.第一代(1971—1973年)4位或低档8位微处理器
1971年美国Intel公司研制成功的4004是集成度为2000个晶体管、片的4位微处理。
1972年Intel公司推出低档8位的8008也属于第一代微处理器产品。
第一代微处理器的指令系统比较简单,运算能力差、速度慢(基本指令的执行时间为10~20μs),但价格低廉。
软件主要使用机器语言及简单的汇编语言。
2.第二代(1974—1978年)中高档8位微处理器
微处理器问世后,众多公司纷纷研制微处理器,逐步形成以Intel公司、Motorola公司、Zilog公司产品为代表的三大系列微处理器。
1973年到1975年,中档微处理器以Intel8080、Motorola的MC6800为代表。
1976年到1978年,出现高档8位微处理器,典型产品位Intel8085、Z80和MC6809。
第二代微处理器比第一代有了较多改进,集成度提高1~4倍,运算速度提高10~15倍,指令系统相对比较完善,已具有典型的计算机体系结构以及中断、存储器直接存取(DMA)功能。
软件除汇编语言外,还可以使用BASIC、FORTRAN以及PL/M等高级语言。
后期开始配上操作系统,如CP/M(ControlProgramMonitor)操纵系统,他运用于以8080A/8085A、Z80、MC6502为CPU,带有磁盘及各种外设的微型计算机系统。
3..第三代(1978—1981年)16位微处理器
1977年左右,超大规模集成电路工艺研制成功,一片硅片上可集成一万个以上的晶体管,16Kb和64Kb半导体存储器也已出现。
微处理器及微型计算机从第二代发展到第三代。
三大公司陆续推出16位微处理器芯片,如Intel8086的集成度为29000晶体管/片,Z8000为17500晶体管/片,MC68000为68000晶体管/片。
这些微处理器的基本指令执行时间约为0.15μs。
以各项性能指标看,比第二代微处理器提高了很多,已达到或超过原来中、低档小型机的水平。
用这些芯片组成的微型计算机有丰富的指令系统、多级中断系统、多处理机系统、段式存储器管理以及硬件乘除运算等。
除此以外,还配备了功能较强的系统软件。
为方便原8位机用户,Intel公司很快推出8088,其指令系统完全与8086兼容,内部结构仍为16位,但外部数据总线是8位。
并以8088为CPU组成了IBMPCPC/XT等16位机。
由于其性能价格比高,很快占领了世界市场。
与此同时,Intel公司在8086基础上研制出性能更优越的16位微处理器芯片80286,以80286为CPU组成IBMPC/AT高档16位机。
以上介绍的是16位微型计算机发展的一条途径,即在原8位机的基础上发展而来。
另一条途径是将已流行的16位小型计算机微型化,例如美国DEC公司将PDP-11/20微型化为LS-11,将中档PDP-11/34微型化为LSI-23,又如NOVA机微型化为MicroNOVA等等。
4.第四代(1985年后)32位高档位处理器
1985年,Intel公司退出了32位微处理器芯片80386。
80386有两种结构:
80386SX和80386DX。
这两种的关系类似于8088和8086的关系。
80386SX内部结构为32位,外部数据总线为16位,采用80287作协处理器,指令系统与80286兼容。
80386DX内部结构、外部数据总线皆为32位,采用80387作为协处理器。
1990年,Intel公司在80386基础上研制出新一代32位微处理器芯片80486。
它相当于把80386/80387及8KB(23×210Byte)高速缓冲存储器集成在一块芯片上,性能比80386大大提高。
5.第五代(1993年后)64位高档微处理器
1993年3月,Intel公司推出64位微处理器芯片Pentium(80586,P5),它的外部数据总线为64位,地址总线为32位,内存寻址空间为232B=4GB,工作频率为66MHz,以它为CPU的Pentium机是一种64位高档微机。
IBM、Apple和Motorola三公司合作生产的PowerPC芯片是又一种优异的64位微处理器芯片,以它为CPU的微型计算机型号为Macintosh。
6.第六代(1995年后)64位高档微处理器
1995年,Intel公司推出第六代微处理器PentiumPro(P6)。
它采用了0.6μm工艺,集成了550万只晶体管。
它有数据线64位,地址线36位,寻找范围为236B=64GB。
工作频率达200MHz。
随后,Intel公司陆续推出了P6的系列产品:
PentiumⅡ、PentiumⅢ、PentiumⅣ等。
这些产品采用了多项先进技术,如:
RISC技术,超级流水线技术、超标量结构技术(每个时钟周期可启动并执行多条指令)、MMX技术、动态分支预测技术、超顺序执行技术、双独立总线DIB技术;一级高速缓冲存储器(L1)采用双cache结构(独立的指令cache和数据cache)、二级高速缓冲处理器(L2)达256KB或512KB;支持多微处理器。
第六代微处理器性能优异,适应当前多媒体、网络、通信等多方面的要求。
随着科学技术的发展,将会不断的对微处理器提出新的要求,新型、新概念的微处理器定会层出不穷。
1.2.2计算机的分类
微处理器(MP-MICROPROCESSOR)是集成在一片大规模集成电路芯片上的中央处理器,又称MPU,简称MP。
它具有一般CPU的功能,它的体积远远小于一般CPU,还具有功耗低,价和可靠性高的优点。
按MPU处理数据的位数来看,微处理器可分为4位,8位,16位和32位MPU。
32位微处理器是当今较先进最流行的微处理器,它所构成的微型计算机也是当今世界最流行的较先进的微型计算机。
从制造微处理器器件的工艺来看,可分为MOS工艺的通用微处理器和双极性TTL工艺的位片时微处理器,后者具有速度快、灵活多变但功耗较大的特点。
位片时微处理器以位为单位构成MPU芯片,常用多片位片式微处理器构成高速、分布式系统和阵列式系统等,可以按实际需要,选择构成不同数位的微处理器,因而是个灵活多变。
1.3
1.3.1硬件组成
一、微计算机系统的一般结构
微计算机系统和一般电子计算机结构上的共同之处在于:
他们都是由硬件和软件两个大部分组成,可归纳为如下页所示的关系图。
二、硬件
微计算机硬件是机器的实体部分,其组成主机的各个部分—µP、RAM、ROM和I/O接口电路将在后面各章讲述,并从系统设计和连接的原则、方法出发,将之接入系统。
三、软件
微计算机的软件,从广义角度来说包括各种程序设计语言、系统软件、应用软件和数据库等。
微计算机根据使用场合的不同和利用形态不同,因而设计者或生产厂家给它配上的软件规模也不同。
(一)程序设计语言
程序设计语言是指用来编写程序的语言,是人和计算机之间用来交换信息所用的一种工具,又称编程环境,通常分为机器语言、汇编语言和高级语言三类。
1.机器语言
机器语言就是能够直接被计算机识别和执行的语言。
计算机中传送的信息是一种用“0”和“1”表示的二进制码,因此,机器语言程序就是用二进制代码编写的代码程序。
对于每种微计算机,若使用的µP不同(因每种µP都有自己的指令系统),所以使用的机器语言也就不相同。
显然,用计算机语言编写程序,优点是计算机认得,缺点是:
直观性差、繁琐、容易出错,对不同的µP的机器也没有通用性能等,因而难于交流,在实际应用中很不方便,则很少直接采用。
(图)
2.汇编语言
基于机器语言的缺点,人们想出一种办法—用一种能够帮助记忆的符号,即用英文字母或缩写符号来表示机器指令,则称这种用助记符(Mnemonic)表示的机器语言为汇编语言。
由于汇编语言程序使用这种帮助记忆的符号指令汇集而成的,因此程序比较直观,从而易记忆、易检查、便于交流。
但是用助记符指令编写的汇编语言程序(又称源程序)计算机是不认得的;汇编语言源程序必须要翻译成与之对应的机器语言程序(又称目标程序)后,计算机才能执行。
担任翻译加工的系统软件称为汇编程序(Assembler)。
没有汇编程序的机器,对源程序的翻译可由人工来进行,这种翻译称为“手编”或人工代真,也可再用相同的µP的配有汇编程序的另外机器上去翻译成目标程序后,再送回本计算机执行。
由于汇编语言的符号指令与机器代码是一一对一应的,从执行的时间和占用的存储空间来看,它和机器语言一样是高效率的,同时也是计算机所用的µP不同而异。
机器语言和汇编语言都是面向机器的程序设计语言,又称初级语言。
使用它便于利用计算机的所有硬件特性,是能直接控制硬件的一种语言。
3.高级语言
又称为算法语言。
为了从根本上克服初级语言的缺点,一方面为了使程序设计语言适合于描述各种算法,使程序设计中所用语句与实际问题更接近;另一方面也为了使程序设计可以脱离具体的计算机结构,不必了解其指令系统,这就出现了各种高级语言。
用高级语言编写的程序通用性更强。
BASIC,FORTRAN,Pascal,COBOL和C都是常用的高级语言。
高级语言程序计算机也不认得,用高级语言编写的源程序仍需翻译成机器语言表示的目标程序,计算机才能执行,这就需要各种解释程序或编译程序。
其过程在算法语言课程中已有介绍,本课程不再赘述。
综上所述,汇编语言和高级语言各有所长。
用高级语言虽然可以大大减少程序编制的时间,但却得不到最有效的目标程序。
与由高级语言源程序编译产生的目标程序相比较,熟练的程序员用汇编语言源程序翻译得到的机器代码,一般能节省储存空间,执行速度更快,在要求高效率、储存容量有限的应用中是常采用的一种语言。
汇编语言离不开CPU指令系统,通过它有助于了解微型计算机工作原理。
本课程以汇编语言为主,阐明编程原理和方法。
(二)系统软件
仅有硬件的裸机,自然不能发挥计算机的作用,就是你选用了最合适的语言也无法使计算机运转。
为此,还必须有系统软件。
系统软件是由机器的设计者提供给用户的,是指为了方便用户和充分发挥计算机效能的一系列程序。
人就是通过这些程序来使用机器的。
系统软件是各种应用程序的支持软件,包括监控程序、操作系统、汇编程序、解释程序、编译程序、诊断程序等。
1.监控程序
又称管理程序。
在单板微计算机上常配有1~2K字节的监控程序,通常固化在内存ROM中,又称“驻留”(Residend)软件。
其主要功能是:
对主机和外部设备的操作进行合理的安排,接受分析各种命令,实现人机联系。
在它的支持下,可以在RAM中存放机器语言程序代码和数据代码,或者对它们进行修改,从任何要求的程序点上执行机器语言程序,由存储器送出计算结果等调试工作。
通常在监控程序中还包括一些可供用户条用的有用子程序。
如TP801单板机的监控程序叫做TPBUG。
2.操作系统(O.S)
操作系统是在程序管理基础上,进一步扩充许多控制程序所组成的大型程序系统。
其主要功能有:
合理地组织整个计算机的工作流程,管理和调度各种软、硬件资源—包括CPU、存储器、I/O设备和软件,检查程序和机器的故障。
用户通过操作系统便可方便的使用计算机。
操作系统是计算机系统的指挥调度中心。
从广义来讲,操作系统应包括引导程序、监控程序、输入/输出驱动程序、连接程序、编辑程序、汇编程序、解释程序、编译程序、数据库等,是各种语言程序的运行环境。
操作系统具有层次结构,我们可以把操作系统管理的资源表示为图1-4所示的层次。
有了操作系统的微计算机系统的所有资源都将有操作系统统一管理起来,用户并不必过问各个部分资源的分配使用情况,而只是通过使用它的一些命令就行了。
例如:
通过使用它的实用程序命令就可调用各种语言。
因此,可以说操作系统是用户和裸机间的接口。
微计算机系统常用的操作系统有以下几种:
(1)CP/M(ControlProgram/Monitor)它是较早的微机操作系统,是一种单用户单道程序的小型操作系统,它允许用户通过控制台或键盘对系统进行控制和管理,它仅有磁盘文件管理系统。
(2)MS-DOS(Microsoft-DiskOperatingSystem)是美国Microsoft公司开发的通用16位单用户磁盘操作系统,主要包括文件管理和外设管理的操作系统。
该系统吸收了CP/M及其他操作系统的长处,结构优良,软件上的互换性强,是IBM-PC机的主要操作系统。
(3)UNIX是Bell实验室提供的一种分时操作系统,是16位为计算机的标准操作系统。
操作系统通常放在软磁盘或硬磁盘中,容量为十几K~几十K字节。
3.汇编程序
汇编程序的功能是把用汇编语言编写的源程序翻译成机器语言表示的目标程序。
汇编语言可存放在内存的ROM中,称为驻留的汇编程序。
具有驻留程序的微计算机可直接把汇编语言源程序翻译成机器语言的目标程序;汇编语言也可存放在磁盘上,使用这种汇编程序时,应在操作系统支持下,先把汇编程序调入内存,然后才能用汇编语言源程序进行翻译加工,得到机器语言的目标程序。
4.解释程序
解释程序的功能是把用某种程序设计语言的源程序(如BASIC程序)翻译成机器语言的目标程序。
并且本着翻译一句就执行一句的原则,做到边解释边执行。
5.编译程序
编译程序能把高级语言(如FORTRAN等)编写的源程序翻译成机器语言的目标程序。
6.实用程序
用汇编程序和编译程序的程序设计语言,当编好程序后,还需要对程序进行编辑、调试并将程序装配到计算机中去执行;在这些过程中,还需要一些其他的辅助程序,这类辅助程序称为实用程序。
为计算机系统常用的实用程序有:
文本编辑程序、连接程序、定位程序和调试程序。
文本编辑程序(EDITOR)是软件编制开发的一种工具。
在它的管理控制下,程序员可通过键盘/屏幕终端(CRT终端)输入源程序,然后存入磁盘,生成文本文件,并由它对生成的文本文件进行编辑—如增补、删除、修改等。
微计算机常采用模块结构方式进行程序设计。
模块程序允许将一个大的程序分为若干个独立的模块进行编程。
各模块经汇编后,得到各自独立的的目标程序。
这些目标程序都是具有浮动地址格式的机器语言程序,还不能被机器执行。
连接程序的功能就是把各个独立的具有浮动地址的机器语言模块组合起来,形成一个完整的输出程序,再由定位程序把存储器单元分配给目标模块,这时的输出程序方能有计算机执行。
一个程序编好以后,必须要进行调试。
一般语法上的错误在汇编、编译和链接过程中可以排除,而大部分错误还必须用调试手段来进行排除。
调试程序(Debug)的任务就是用来对程序错误进行纠错的。
7.诊断程序
诊断程序的功能是用来检查程序的错误或计算机故障的,并由它之处出错的地方。
(三)应用程序
应用程序是用户利用计算机提供的各种系统软件,为解决各种实际问题而编制的程序,随着计算机的广发应用和普及,现已编制出许多应用程序,这些应用程序可按功能组成不同的程序包(RoutinePackage),以减少重复的编程工作。
(四)数据库与数据库管理系统
随着计算机硬件和软件的发展,微计算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 理论基础