微机原理 课 1 讲 教 案
绪论
§1-1 计算机的发展概况及分类
§1-1-1 计算机的发展概况
1946年,第一台计算机在美国诞生,至今已有近60年的历史。60年来,计算机经历了
迅猛的发展,得到了广泛的普及,对整个社会的进步和科学的发展产生了极其深远的影响。
在此期间,计算机经历了电子管计算机时代、晶体管计算机时代、集成电路计算机时代、大
规模及超大规模集成电路计算机时代。计算机的功能已经从早期的数值计算、数据处理发展
到可以进行知识处理的人工智能阶段,不仅可以处理文字、字符、图形图象信息,而且可以
处理音频、视频信息,形成了智能化的多媒体计算机。
在推动计算机技术发展的诸多因素中,除了计算机的系统结构和计算机的软件技术发展
起到了重要的作用之外,电子技术特别是微电子技术的发展也起到了决定性的作用。70年
代初,随着大规模集成电路的出现,原来体积很大的中央处理器(CPU )电路集成为一个只
有十几平方毫米的半导体芯片,称为微处理器(MPU )。
微处理器的出现,开创了微型计算机的新时代。以微处理器为核心,再配上半导体存储
器(RAM 、ROM )、输入/输出接口电路(I/O接口电路)、系统总线以及其他支持逻辑,这
样组成的计算机,称为微型计算机。微型计算机的出现,是计算机技术发展史上的一个新的
里程碑,为计算机技术的发展和普及开辟了崭新的途径。
由于微型计算机具有体积小、重量轻、价格便宜、耗电少、可靠性高、通用性和灵活性
好等特点,加上超大规模集成电路工艺技术的迅速发展和成熟,使微型计算机技术得到了极
其迅速的发展和广泛的应用。从1971年美国INTEL 公司首先研制成功世界上第一块微处理
器芯片4004以来,在头十年中,差不多每隔2~3年就推出一代新的微处理器芯片,如今已
经推出了多代微处理器产品。
微处理器是计算机的核心部件。它的性能在很大程度上决定了微型计算机的性能,因此,
微型计算机的发展是以微处理器的发展来更新换代的。
第一代(1971~1973)微处理器和微型计算机是4位微处理器和低档8位微处理器时代。
在这一时期,典型的产品有INTEL 4004、INTEL 8008。其中INTEL 8008是第一个8
位通用微处理器,以4004、8008为CPU 构成的微型计算机分别是MCC-4和MCS-8。主要
应用于各种袖珍计算器、家电、交通灯控制等简单控制领域。
第二代(1973~1978)微处理器和微型计算机是成熟的8位微处理器时代。
1973年INTEL 公司推出了性能更好的8位微处理器8080。它的出现,加速了微处理器
和微型计算机的发展。MOTOROLA 公司的MS6800,ZILOG 公司的Z80,INTEL 公司的
8085等。广泛用于数据处理、工业控制智能仪器仪表及家电等各个领域。
第三代(1978~1983)是16位微处理器时代。
70年代后期,超大规模集成电路的成熟,进一步推动了微处理器和微型计算机生产技
术向更高层次发展。1978年,INTEL 公司率先推出了新一代16位微处理器8086,随后,INTEL
公司的8086/8088,MOTOROLA 公司的MC68000和ZILOG 公司的Z8000,这些高性能的
16位微处理器成为当时国内外市场上流行的典型产品,集成度高达29000管/片。INTEL
8086/8088内部采用流水线结构,设置了指令预取队列,使处理速度大大提高。INTEL 公司
推出了十六位微处理器中的高档芯片80286,它具有多任务系统所必须的任务切换功能、存
储器管理功能和多种保护功能,支持虚拟存储体系结构,地址总线从20位增加到24位,存
储器直接寻址空间达到16MB ,时钟频率提高到5MHZ ~25MHZ 。从80年代中、后期到90
年代初,80286一直是个人计算机IBM PC/AT 机的主流型CPU 。同期的产品还有
MOTOROLA 的MC68010。
第四代(从1983年起)是32位微处理器时代。这一时期的典型产品有ZILOG 公司推
出的Z80000、MOTOROLA 公司推出的MC68020、INTEL 公司推出的80386、80486、
MOTOROLA 公司推出的68040等。
第五代(1993)是INTEL 推出的Pentium 微处理器(简称P5或586)。Pentium 微处理
器的推出,使微处理器的技术发展到了一个崭新的阶段,标志着微处理器完成从CISC 向
RISC 时代的过度,也标志着微处理器向工作站和超级小型机冲击的开始。同期的产品还有
AMD 公司的K5,IBM 、APPLE 、MOTOROLA 三家联合推出的POWOR PC。
继Pentium PRO之后,Intel 公司又推出了Pentium Ⅱ、Pentium Ⅲ、Pentium Ⅳ等微
处理器的极品,成为PC 机的主流CPU 。
随着LSI 和VLSI 技术的进一步发展,微处理器的集成度越来越高,芯片功能越来越强。
从微型机总的发展情况看,为了使微处理器获得高性能,一方面提高集成度,另一方面在系
统设计上追求综合性能的提高,更加全面的采用中大型计算机体系结构中的先进技术,如流
水线技术、高速缓存技术、虚拟存储管理技术、RISC 技术、并行处理技术,更好地支持多
处理器运行环境、多媒体技术和计算机网络应用等。
§1-1-2 计算机的分类
微处理器的字长也就是微型机的字长,字长是最能反映机器性能的技术指标之一。按照
微处理器的字长分类,一般可分为4位、8位、16位、32位和64位机等几种。
如果将微型计算机按照其组装形式来分,可将其分为单片机、单板机和多板微型计算机。
§1-2 微型计算机的特点及应用
§1-2-1 微型计算机的特点
电子计算机通常按照体积、性能和价格分为巨型机、大型机、中型机、小型机和微型机
五类。从系统结构和基本工作原理上说,微型机和其它几类计算机并没有本质上的区别,所
不同的是微型机广泛采用了集成度相当高的器件和部件,因此带来以下一系列特点:
● 体积小、重量轻、功耗低
由于微型计算机中广泛采用了大规模和超大规模集成电路,从而使构成微型机所需要的
器件和部件数量大为减少,使之体积大大缩小。
● 可靠性高、使用环境要求低
微机计算机采用大规模和超大规模集成电路以后,使得系统内使用的器件数量大大减
少,器件、部件间的连线大大减少,接插件数目减少,加上MOS 电路本身工作所需的的功
耗就很低,这些都使微型机的可靠性大大提高,因而,也就降低了对使用环境的要求。
● 结构简单、系统设计灵活、适应性强、使用方便
由于微型计算机多采用规模化的硬件结构,特别是采用总线结构后,使微机系统真正成
为一个开放的体系结构,构成系统的各功能部件和各种适配卡通过标准的总线插槽相连。相
互间的关系变为面向总线的单一关系,大大增加了系统扩充的灵活性和方便性。
● 软件配置丰富
计算机的优良硬件性能是通过丰富多彩的软件体现在人们面前的。因此,软件是计算机
的灵魂。如今,微型计算机之所以得到如此空前的普及和广泛应用,是与它能配置丰富的软
件密切相关,从系统软件到应用软件应有尽有,而且功能强、使用方便,这就加速了微型机
在人类社会的普及。
● 性能价格比高
性能价格比是指机器性能与售价之比。它是衡量计算产品成本性能优劣的一个综合指
标,性能包括字长、主频、速度、配置、可靠性、可操作性等;价格指售价。
微处理器最突出的优点之一就是价格低廉、性能优良。
§1-2-2 微型计算机的应用
1. 工业控制
2. 事物处理
3. 计算机辅助设计和辅助制造CAD/CAM
CAD 是指用计算机帮助设计画图,可使得设计过程走向半自动化和自动化。CAM 的中
心设备是数控机床,围绕数控机床有一组自动化设备,用以完成加工件的运输、组装、加工、
测量、检查等功能。
CAD/CAM能大量节省人力,提高效率。更重要的是提高质量,并使以往人工难以完成
的任务成为可能。
4. 教学培训
5. 家庭娱乐和家政事物管理
6. 科学和工程计算
§1-3 计算机的基础知识
§1-3-1 计算机中的数据表示及编码
一.进位计数制及数制转换
人类在长期的生产劳动实践中创造了我们最熟悉的十进制,而生活中还有十二和十六进
制等多种数系,其共同之处是采用进位计数制。
1.进位计数制
进位计数制是采用位置表示法,即处于不同位置的同一数字符号,所表示的数字不同。
一般说来,如果数制只采用R 个基本符号,则称为基R 数制,R 称为数制的“基数”或简
称“基”;而数制中每一固定位置对应的单位值称为“权”。
进位计数制的编码符合“逢R 进位”的规则,各位的权是以R 为底的幂,一个数可以
按权展开成多项式,例如“逢十进一”的十进制数1992.5可写为
1992.5=1×103+9×102+9×101+2×100+5×10-1
对R 进制数N ,若用n+m个代码Di (-m≤i ≤n-1) 表示,从D n-1到D -m 自左至右排列,
其按权展开多项式为:
n-1n-20-1-m N=Dn-1R +Dn-2R +„+D0R +D-1R +„+D-m R
其中Di 为第i 位代码,它可取0~(R-1)之间的任何数字符号;m 和n 均为正整数,n
表示整数部分的位数,m 表示小数部分的位数;Wi 表示Di 位的权,它是以R 为底的幂。
下面是计算机常用的进位计数制:
二进制 R=2 基本符号 0,1
八进制 R=8 基本符号 0,1,2,3,4,5,6,7
十进制 R=10 基本符号 0,1,2,3,4,5,6,7,8,9
十六进制 R=16 基本符号 0,1,2,3,4,5,6,7,8,9,A ,B ,C ,D ,E ,F
其中,十六进制中的数符A ~F 字母,分别对应十进制的10~15,例如一个十六进制数
8AE6可以写为:
32108AE6H=8×16+10×16+14×16+6×16
在数8AE6后面加H 是为了识别十六进制数而加的标识字母。由于二进制数书写长,难
读难懂,为书写方便,计算机中经常使用8进制或16进制。人们又习惯于十进制,而计算
机内必须采用二进制,故上面四种进制是经常要用的。为了识别起见,二进制数尾加B 作标
识,十进制数尾加D 或省略,八进制数尾加Q ,十六进制数尾则加H 。使用四种进制必然产
生各种数制间的相互转换问题。
2.进位计数制间的相互转换
不同进位计数制数据转换,其实质是进行基数的转换,转换原则是根据:两个有理数相
等,其整数部分和小数部分分别相等。故要分别进行转换。
(1) 二进制与十进制转换
a. 二进制转换为十进制
其转换规则为“按权相加”,即只要把二进制数中位数是1的那些位的权值相加,其和
就是等效的十进制数。二进制数整数与小数部分各位权值对应的十进制数值为:
[1**********]0-1„2 2 2 2 2 2 2 2 2 2 2 2
-22 „
„1024 512 256 128 64 32 16 8 4 2 1 0.5
0.25 „
例1.1 将10101101.101B 转换为十进制数
75320-1-310101101.101B=2+2+2+2+2+2+2
=128+32+8+4+1+0.5+0.125
=173.625D
该转换规则同样适用于将八进制数和十六进制数转换为十进制数,只是相加各项是八进
制或十六进制数符与数位权值之和。
例1.2 将312Q 和2A.68H 转换为十进制数
210 312Q=3×8+1×8+2×8=3×64+8+2=202D
10-1-2 2A.68H=2×16+10×16+6×16+8×16
=32+10+0.375+0.03125
=42.40625D
b. 十进制转换为二进制
整数部分转换——将十进制数连续用基数2去除,直到商数到0为止,每次除得的余数
依次为二进制数由低到高的各位值,简称“除2取余”法。
例1.3 将47D 转换为二进制数
47 =23 余1 2
23
=11 余1
2
11
2 =5 余1
5
=2 余1 2
2
=1 余0 2
1
=0 余1 2
位 低位
所以,47D=101111B。
同理,将十进制数转换为R 进制数,按照“除R 取余”规则即可。
例1. 4 十进制数725D 转换为十六进制数。
按“除16取余”方法进行。
16 725 余数5
16 45 余数13(D )
16 2 余数2
转换结果: 725 D=2D5 H
小数转换——将十进制小数部分连续乘以2,每次所得乘积的整数部分,依次为二进制
数从高到低的各位值。转换规则简称“乘2取整法”。
例1.5 将0.6875D 转换为二进制数。
0.6875 0.3750 0.7500 0.5000
⨯ 2 ⨯ 2 ⨯ 2 ⨯ 2
高位 低位
所以,0.6875D=0.1011B
需要注意的是,十进制小数常常不能准确地换算为等值的二进制数,有换算误差存在,
转换后的二进制数位数,根据字长限制取有限位的近似值。
同理,十进制小数转换为二进制,可以按照“乘R 取整”方法进行。对于具有整数和小数的复合十进制数,只要将整数和小数部分分别按照上述转换方法进行,最后将其二进制整数和小数部分用小数点连接即可。例如从例3和例5可得:
47.6875 D=101111.1011 B
(2) 二进制与八进制和十六进制之间转换
由于八进制、十六进制既可简化书写,又便于记忆,而且与二进制之间转换方便、直观,因此在汇编语言程序及机器语言中指令、数据书写多采用八进制和十六进制。由于八、十六进制基数与二进制有内在联系,即:23=8,24=16。因此,每一位八进制数可以转换为三位二进制数,每一位十六进制数可以转换为四位二进制数,转换直接而且方便。
a. 二—八进制转换
将二进制数以小数点为界,左右分别按照三位一组划分,不足三位者用零补齐,即可换算出对应的八进制数。
例1.6 把110111101.011100B 转换为八进制数。
110111101.011100
6 7 5 . 3 4
即110111101.011100B=675.34Q
反之,由八进制转换为二进制只需要把各自对应的三位二进制写出即可。
例1.7 63.52Q 转换为二进制数。
63.52Q=(110)(011).(101)(010)B
=110011.10101B
b. 二—十六进制转换
将二进制数转换为十六进制数和二—八进制转换方法一样,只是将二进制数按照四位一组进行划分转换。
例1.8 把10111001.01101B 转换为十六进制数。
10111001.01101B=(1011)(1001). (0110)(1000)B
= B 9 . 6 8
所以,10111001.01101B=B9.68H
反之,将十六进制数各位数码用相应四位二进制数表示,即可转换为等效的二进制数。 例1.9 把5F.7A5H 转换为二进制数。
5F.7A5H=(0101)(1111).(0111)(1010)(0101)B
=01011111.[1**********]1B
二.数值数据表示
本节我们着重讨论两个问题:数值数据在机内的定点和浮点表示方法;数据的编码方式。
1.机器数的定点和浮点表示
把数值数据送入计算机处理,仅转换为二进制还不行,必须解决数的符号表示,小数点位置以及用有限设备表示的有效数值范围等问题。数在机器内部的表示形式称为机器数,而计算机对应的数值称为机器数的真值。机器数被存放在有记忆功能的存储器件中。机器数的符号是数字化处理的,用一位编码表示,通常用0表示正数,1表示负数。机器数的小数点位置是事先约定的,它在机器数表示格式中并不出现,但根据设计格式,计算机在运算处理中却清楚地知道其位置。按照规定格式,机器数有定点和浮点两种表示形式。
(1) 定点表示
由于采用进位计数制,任何一个二进制数N 都可以表示为:
N=2±⨯M E
其中:E 是一个二进制整数,称为数N 的阶数;2为底数,M 是二进制尾数,它表示该数的全部有效数字,而阶码E 则指明了小数点位置,表明数值范围。
对任一数N=2±⨯M ,若阶码E 固定不变,则小数点位置是固定的,这种表示则称为数的定点表示,该数称为定点数。计算机中定点数通常有两种约定:一是取E=0,把小数点固定在尾数最高位之前,一是取E=n(n为尾数的位数) ,则把小数点约定在尾数最末位之后,这两种情况阶码无须表示,前者即为定点小数,后者即为定点整数,其格式如图1-1中(a )、(b)所示。
N=-0.0110010
(a)定点小数
E
N=+1001001
(b)定点整数
图 1-1 定点数表示
以上两种定点数的表示,计算机均可采用,目前微型机中,多采用定点整数形式。这里需要强调的是:小数点位置是假想位置,当机器设计时将表示形式约定好,则各种部件及运算线路均按约定形式进行设计。
机器数字长确定后,其数值表示范围即可确定。例如对定点小数,机器数定长N 位,其中一位符号位,n 位有效数值,则N 位定点小数表示范围为:
1.1 1 …1 1 (最小值) 到 0.1 1…1 1(最大值)
n 位 n 位
对应真值表示范围为:
-(1-2-n )≤ X ≤1-2-n
例如,N=16位,则对应表示的真值范围为
---(1-215)≤ X ≤1-215
用n 位设备存放定点整数,则所能表示的真值为负n 位全1到正n 位全1,即
-(2n -1)≤ X ≤2n -1
若N=16位则为:
-(215-1)≤ X ≤215-1
若用n 位表示无符号整数,则其整数值表示范围:
0~2n -1
计算机中参加运算的数,若超过计算机所能表示的数值范围,则称之为溢出。这时,计算机要对溢出进行相应处理操作。
(2) 浮点表示
当阶码值不固定时,数的小数点实际位置将根据阶码值相对浮动,这就构成数的浮点表示。浮点表示要把机器数分为两部分,一部分表示阶码,另一部分表示尾数,阶码和尾数均有各自的符号位。阶符表示数的实际小数点相对约定小数点位置的浮动方向:若阶符为负,实际小数点在约定小数点左边,反之在右边,其位置则由阶码值确定,而尾数符号代表了浮点数的符号。图1-2所示为浮点数的一种表示形式。
阶符 阶码 尾符 尾数
图1-2 一种浮点数表示形式
若尾数用n 位小数表示,浮点数的表示范围根据阶码位置r 和尾数位数n 决定,其浮点数表示范围为:
a=(2 r-1)
---2a ×(1-2n )≤ X ≤+2a ×(1-2n )
例如对十六位机器字长,阶码4位(包括一位符号),尾数12位(一位符号),则数值表示范围:(阶码4位(含1位符号) 为定点整数,尾数12位(含1位符号) 为定点小数。)
a=(2 3-1)=7
---27×(1-211)≤ X ≤+27×(1-211)
--或 -128×(1-211)≤ X ≤+128×(1-211)
可以看出,要扩大数的表示范围,应增加阶码的位数;而要增加精度,就需要增加尾数的位数。对同样字长,浮点数比定点数表示的数值范围要大许多,但浮点数运算操作复杂。浮点数产生溢出,实质上是阶码溢出。
2.机器数的编码表示
数值数据在计算机内采用符号数值化处理后,机器可以表示并识别带符号的数据。为了改进运算方法、简化控制电路,人们研究出多种符号数的编码方式,如原码、反码、补码等。这里我们介绍最常用的原码和补码形式。
(1) 原码
前面已经讨论过最简单直观的机器数表示,即仅将符号位数字化表示为0或1,数的绝对值与符号一起编码,或者说是“符号-绝对值表示”的编码,称为原码。
例: X=+0110111 〔X 〕原=00110111
X=-0110111 〔X 〕原=10110111
其中〔X 〕原称为机器数,X 称为机器数的真值。因此,原码直接可从真值求得,只要将符号位用0和1表示真值的正号和负号,真值的绝对值就是原码的数值部分。
当采用原码表示法时,编码简单直观,与真值转换方便,但也带来一些麻烦。一是引起机器中0的表示不唯一,因为[+0]原=000„0,[-0]原=100„0,0有二义性,给机器判0带来麻烦,必须在设计时约定好机器采用正零或负零。二是用原码进行四则运算时,符号位需要单独处理,而且原码加减运算规则复杂。例如对有符号数的加法规则为:若两个数同号,两数相加,结果冠以共同的符号;若两个数异号,则由大数中减去小数,结果冠以大数的符号。而减法又有一套规则。
(2) 补码
为使数字化后的符号位能作为数参加运算,并解决减法转换为加法的问题,以简化计算机的运算线路,就产生了补码表示。
如果我们想把十进制减法变成加法做,用什么办法呢?减一个十进制数可采用加该数的十进制补数,然后丢弃进位得到相减结果,一个数的十进制补数是用10减去该数得到的。例如,十进制减法:
9-2=7,2的补数是10-2=8
因此 9-2=9+8=17→7(丢掉进位)
这里,实际是把10看成一个模数,记作M 。模数在物理上,是某种计量器的度量。在模数系统中:
9-2=9+8=17→7 (Mod 10)
上式之所以成立,是因为2与8对模数10 是互为补数的,即8=10-2。
生活中使用的模数系统很多,例如时钟为12,有下式成立:
8-3=8+9→5(Mod 12)
因为9=12-3。该式表明将时钟从8点倒拨3格和正拨9格效果一样,时钟均指向5点,我们称+9为-3在模12下的补码,即[-3]=9(Mod 12),这样就可以把减法转换为加法。
计算机中的机器数及其存储、运算设备,如寄存器、加法器等都有固定的长度,因此,都只能进行有模的计算。N 位设备存放n 位二进制代码,则2n 就是其模数,因为两数相加求和时,如果n 位的最高位产生了进位,就会丢掉,这正是模数系统中相加的概念。所以,对任何一个二进制负数都可以找到对应于模数为2n 的正补数,从而将减法运算变为加法运算。同时,由于n 位字长中包括一位符号位,故补码运算中的符号和数一起运算。对补码的产生、定义和有关性质的证明,不准备进行过多的讨论,我们只需要了解补码的形式及其运算特点。
a. 补码的求法。由以上讨论可知,对一个二进制负数可用其模数与真值作加法(实际作减法,因真值为负)求得其补码,即按定义式求
X 0 ≤ X ≤ 2n-1
[X ]补= (mod 2)
n +X -2n-1 ≤ X ≤0
但在机器中实现不方便,因机器中不存在数的真值表示,由于原码表示简单直观,因此在计算机中数是以原码存储的。我们可从数学推导得出一个简便方法,直接从原码求得负数补码。对正数,其补码和原码相同。负数的补码则是将原码符号位保留,其余各位取其反码,即0变1,1变0,再在最低位加1。而正数的补码与原码相同。即
除符号位外
[X ]原 = [X ]补
每位取反,末位加1
例1.10 求X=+1010101的补码。
X 是正数,[X ]补= [X ]原= 01010101
例1.11 求X= -0101110的补码。
X 是负数, =10101110
[X ]补=11010001+1=11010010
b. 补码特点
机器数采用补码表示后,具有如下几个特点:
① 正零、负零表示均为全零,机器零表示统一
〔+0〕补= 0 0 „0 〔-0〕补=1 1 „1+ 1 0 0 „0
n 自动丢失
所以,〔+0〕补= 〔-0〕补=0 0 „0
② 运算时符号位无须单独处理。符号位可作为数值一起参加运算,而且在不溢出
的情况下,仍能得到正确的结果符号。这是由补码性质决定的。
③ 采用补码进行加减法运算时,减法可用加法实现。其运算规则为
[X ]补 +[Y ]补 = [X +Y ]补 (mod 2n)
[X ]补 +[-Y ]补 = [X -Y ]补 (mod 2n)
该规则的严密证明略,我们只应用其结论。由于这种转化使得加减法运算只要一套加法设备即可,从而简化了硬件电路,这是补码表示法的一大优点。
在使用补码表示的计算机中,传送和运算处理过程中机器数均以补码形式出现,因此做减法时必须从[Y ]补求出[-Y ]补,求[-Y ]补方法也很简单,只要对[Y ]补的每一位(包括符号位)都求反,末位加1就得[-Y ]补,即
连符号位
[Y ]补= [-Y ]补
按位取反。末位加1
[Y ]补与[-Y ]补是对模2n 互补,故也称[-Y ]补为[Y ]补的机器负数。
例1.12 用补码求33+(-15)=?
[+33]原=00100001B [+33]补=00100001B
[-15]原=10001111B [-15]补=11110001B
33+(-15)=[+33]补+[-15]补=100010010B=18 进位丢失
例1.13 用补码求67-10=?
[+67]原=01000011B [+67]补=01000011B
[10]原=00001010B [-10]补=11110110B
67-10=[+67]补+[-10]补
=01000011B+11110110B
=00111001B=57
以上两例表明,当带符号的两个数采用补码形式表示时,进行加减运算可把符号位和数值位一起进行运算。若符号位有进(借)位,则丢掉。结果即为两数之和或差的补码形式,这是补码表示的又一优点。
特别要指出的是,采用补码进行加减运算,所有参加运算的数及运算结果都是用补码表示的,若要得到原码还需转换,其转换方法很简单,正数补码与原码相同,对负数将其补码除符号位外,逐位取反,末位加1,就可得到原码。
除符号位外
[X ]补 = [X ]原
每位取反,末位加1
④ 对机器数所表示的数值范围,用补码时要大一点,它可扩充到负数模值。例如:
8位定点整数,用原码表示,其数值范围为-127~+127,而用补码,-128~
+127,目前采用补码表示的机器较多。
3.十进制数的二进制编码表示
由于人们习惯十进制,而计算机采用二进制,为便于人机交往,常常用一组四位二进制编码表示一个十进制数字符号,称为二进制编码的十进制数,二进制编码的十进制数有许多编码方法,它们可以分为有权编和无权编码两类。下表中列出几种形式的编码表示。
表1-2 几种形式的编码表示
(1)有权码
最常用的有权码是8421码,也称BCD 码,这是最自然且简单的编码方法。它用四位二进制编码表示一位十进制数,每一位恰好是二进制低四位的权。由于这种自然联系,故8421有权码有时也称NBCD 码,意为自然(Natural )BCD 码。8421码实现二-十转换很容易,此外还很容易判别十进制数的奇偶性,即奇数的最低位都为1,偶数的最低位都为0。
除8421码外,还有其它几种有权码,表中列出了2421,5221有权码,这两种编码的特点是任何两个十进制数相加等于9时,它们相对应的编码相加结果为1111,这一特点对于减法非常有用,因为按9互补的关系恰好对应二进制模的互补关系。
(2)四位无权码
四位无权码主要有余3码和格雷码两种。余3码是由8421码加0011得来的,各位没有权的关系,余3码具有上面2421,5221有权码的特点,实现减法运算方便,只要对加法产生的值进行修正就可以了。由于每个数余3,两个数余6,恰好跳过四位编码冗余码。
格雷码的编码规则是相邻两代码之间只有一位不同,这样数据传送的可靠性高,适合做
控制编码。
有BCD 码,机器便可以进行十进制运算,设置十进制运算指令。但要注意,由于用四位二进制数表示十进制数,尚有6种编码冗余,除余3码外,均不能由四位二进制最高位进位直接获得十进制数的进位。为此,硬件电路中要设置BCD 码校正电路,指令中有十进制运算调整指令,以保证二-十进制编码运算得到正确的结果。
三.非数值数据的表示
非数值数据不表示数值的大小。它通常分两类:逻辑数和字符数,均以二进制数码表示。 1·逻辑数
逻辑数由无符号二进制代码组成,每位不表示数值,只表示逻辑真值和逻辑假值。逻辑数只能参加逻辑运算,其运算特点是:运算按位进行,各位之间没有进位、借位等情况,即各位相互独立。
由于逻辑数表示和数值数一样,计算机必须根据程序中的指令名来识别运算数据类型。 2·字符数据及其编码
目前,在计算机应用的许多场合中,需要对字符或专用符号进行操作,用高级程序设计语言进行人机交往也是使用字符或符号。由于这些符号不能直接送入计算机,必须先进行数字化处理,用二进制数码表示,我们称之为字符数据。
这些字符如同十进制数字一样,都必须按照一定的规则用一组二进制编码来表示,才能为计算机所识别、处理和传送。当输入信息时,要通过输入设备把输入的字符编成一定格式的代码接收进来,而输出时则要把相应的字符编码送到外部输出设备显示或打印。
字符编码方式有各种规定,或称标准。我国使用的部颁标准字符编码与国际上较普遍使用的ASCII 码基本相同。ASCII 码是美国信息交换标准代码,编码表见附录。
§1-4 微型计算机的基本结构及工作原理
§1-4-1 计算机基本组成及工作原理
一,计算机基本组成
1946年,在美籍匈牙利数学家冯·诺依曼领导的研制小组提出的计算机设计方案中,明确了计算机的五大基本组成,即运算器、逻辑控制装置(控制器)、存储器、输入和输出设备,并描述了五部分职能关系及基于存储程序的基本工作原理。图1-17 为计算机基本组成。
图 1-17 计算机基本组成
1.存储器
存储器是用来存放数据和程序的部件,其基本功能是按要求向指定的位置写入或取出代码信息。
存储器采用按地址存取的工作方式,它由许多存储单元组成,每一个存储单元可以存放一个数据代码,为了区分不同的存储单元,把全部存储单元按照一定的顺序编号,这个编号就称为存储单元的地址。当计算机要把一个数据代码存入某存储单元,或从某存储单元中取出时,首先要提供该存储单元的地址,然后查找相应的存储单元,查到后,才能进行数的存取。因此,能存储大量信息的存储体是存储器的核心。
存储器的工作就是,在运算之前,接收外界送来的程序和数据;在运算过程中,向计算机提供指令和数据信息,保存中间结果;运算结束后,保存运算结果。
2.运算器
运算器是对信息进行加工、运算的部件,具体就是执行二进制代码的基本逻辑运算和算术运算。运算器的运算能力并不高,但计算机运算速度快得惊人,它是用高速度赢得了出色的工作能力。
运算器的核心部件是加法器。运算过程中,它在控制器控制下,从存储器中取数,进行运算后,将结果暂存或送到存储器保存。
3.控制器
控制器是整个机器的控制中心,存储器进行信息的存取,运算器进行各种运算,信息的输入和输出,都是在控制器的同意控制下进行的。
控制器的指挥工作是通过程序进行的。程序中安排好计算机工作的顺序,对可能遇到的各种情况进行处理。运算前,程序被送到存储器保存起来。开始运算后,控制器便自动地到存储器中按顺序逐条取出指令,经过分析后,按指令的要求,向各部件发出执行指令的控制信号,执行指令中规定的操作。
在控制器工作过程中,还要接受执行部件的反馈信息,例如运算器送来的运算结果、状态等。这些反馈信息为控制器判断下一步如何工作提供了依据。
因此,控制器的工作就是根据存储器中存储的程序,周而复始地取指令、分析指令、执行指令,向运算器、存储器、输入输出设备发出控制命令,控制计算机工作。
4.输入设备
人们编写好的程序是经过输入设备送到计算机中去的。输入设备要将程序和数据转换为计算机能识别和接受的信息,如电信号等。目前常用的输入设备是键盘和鼠标。
5.输出设备
输出设备是把运算器中信息处理结果转换成人们所需要的易于理解、阅读的形式。例如在显示终端屏幕上显示或用打印机打印在纸上。
二.微型机的工作原理
1.微处理器CPU 的一般结构
要了解微型机的工作原理,首先要讨论微处理器的结构。CPU 是组成微机系统的核心部件,它具有运算和控制的功能,具体有:
①进行算术和逻辑运算,执行数据处理。
②可暂存数据。
③实现程序控制,即可取指令,对寄存器存,译码分析并执行指令所规定的操作,还要能提供整个系统所需要的定时和控制信号及响应设备发出的中断请求。
尽管各种微处理器的内部结构不尽相同,但为了实现上述基本功能要求,典型的CPU 结构由控制器、工作寄存器、算术逻辑单元和I/O控制逻辑组成。
算术逻辑运算单元是微处理器的核心,所有的算术运算、逻辑运算和移位操作都是有ALU 完成的,ALU 在控制信号控制下,完成不同的操作,ALU 输出经内部总线送工作寄存器接收或输出到外部数据总线上。
工作寄存器暂存用于寻址和计算过程中的信息。工作寄存器有数据寄存器,还有地址寄存器。有的兼有双重用途。数据寄存器用来暂存操作数和中间结果。由于存取寄存器比访问存储器快得多,所以CPU 中含数据寄存器越多,运算速度越快。地址寄存器则用于操作数地址。操作数地址是指令字中的一部分,操作数可放在寄存器中,也可放在存储单元中。为给编程和数据处理提供方便,设计了多种寻找操作数地址的方式,称为寻址方式。
控制器是CPU 的指挥机构,实现指令的取出、寄存、译码和执行。控制器为实现取指令,要设计程序计数器PC 和指令寄存器IR 。PC 中存放即将执行的指令地址,提供给存储器取出该条指令。由于程序中指令是顺序存放的,故当出现程序转移时,就必须改变PC 的内容。指令寄存器IR 用于保存从存储器中取出的当前要执行的指令。分析指令是由指令译码器ID 完成的,ID 发出相应译码输出,使控制逻辑部件产生相应的控制信号去完成指令相应操作,执行指令。为判断指令执行情况,了解数据处理有关结果,程序状态字寄存器(PSW )暂存处理器程序执行的当前状态,例如指示运算结果是否为0,是否溢出,是否进(借)位,或结果为正还是负等。该寄存器在许多微型机中称为状态字寄存器。
I/O控制逻辑包括CPU 中与输入/输出操作有关的逻辑,其任务是处理输入、输出操作。
2.微处理器工作基本过程
图 1-18 是描述CPU 基本工作的流程图,也是指令的执行过程,因为CPU 的工作就是不停地取指令、分析执行指令的过程。直到取出停机指令,程序结束。
去取下条指令
图1-18 CPU 基本工作流程图
从图中可看出,CPU 加电工作后,程序计数器PC 被置入程序的首条指令地址(这是硬件设计保证)。PC 中地址送到CPU 地址总线上,发动相应控制信号启动主存读,取出该单元内容,即首条指令,送入指令寄存器。然后通过指令译码器进行译码分析后,就可确定指令长度(以字节为单位),对多字节指令分几次取入,PC 内容增加相应值,然后由控制逻辑执行指令,若不是转移指令,则重复上述过程,取下条指令执行;若遇到转移指令,则转移地址取代PC 中内容,从转移的目标地址开始执行新指令序列。对条件转移必须检查处理器当前状态是否满足转移条件,当前状态由前面一条指令执行的结果决定,状态标志组成程序状态字,记作PSW ,存放在处理机状态字寄存器中,如状态条件满足转移条件,则实行条件转移,将转移地址置入PC ,从所转移的目标地址执行新指令序列。
§1-4-2 微型计算机系统
现代的计算机与第一代计算机相比,其组成和配置已经发生了很大变化。面对用户的不是仅仅由电子部件构成的计算机,而是由硬件和软件共同组成的计算机系统。
硬件实体是计算机系统的物质基础,软件则是发挥机器功能的关键所在。软件是建立和依托在硬件的基础上的,没有硬件作物质基础,软件功能无从谈起。反之,没有软件的硬件“裸机”将无所作为,不能提供用户直接使用,因此,当代计算机即包含硬件组成,也包含软件支持,二者不可分割,它们共同构成计算机系统,实现信息处理。
1. 微型机系统硬件
所谓硬件,, 是指组成计算机的物理实体。对微型计算机系统来说,硬件包括主机箱及其内部电子线路、键盘、CRT 显示器、打印机等。按逻辑功能将内部部件氛围微处理器CPU 、存储器(主存,辅存)、I/O接口及I/O设备。信息传送由总线和总线控制部件实现。
在当前的微机系统中,通常采用的组织方法如下:
把微处理器、总线控制逻辑、定时逻辑、部分存储器等构成基本系统所必要的逻辑组装在一块较大的印刷电路板上。该印刷电路板称为系统板或主机板,它固定在机箱内。系统板上还装有多个多接点的长形插座(IBM-PC 机的插座有62个接点),每个插座都可以插入另一块印刷电路板与系统板垂直。所谓系统级总线就是系统板上接到这些插座接点上的全部信号线。各插座是并联的,各插座上信号的排列是相同的。构成完整的微机系统所包括的外部设备,如显示器、打印机、磁盘存储器等接口逻辑和扩充容量的存储器,都装在印刷电路板上(小插板),插入主板插座内,然后通过系统级总线与主机板相接。任何新增加的外部设备,只要遵照插座接点的信号约定(总线标准)设计接口的电路,均可“挂”在总线上成为微机系统硬件的一部分,百米减磅厘第亿 硬件配置比较灵活,可以适用于许多应用领域的不同要求。
IBM-PC/XT计算机基本配置中的中央处理器芯片是Intel 8088,主存储器容量从256KB 到640KB ,一般配置两个软盘驱动器,XT 以上的微型机配有硬盘驱动器。随着LSI 技术的不断发展,微处理器的功能极其迅速地发展变化。
2.微型计算机系统软件
(1)软件概述
软件,尚无严密而确切的定义,一般认为软件是指程序和有关的数据和文档。当代计算机离开软件,则成为无实用价值的裸机,因此软件和硬件一样成为计算机系统不可缺少的部分,并与硬件一样影响着计算机的功能。
软件按其功能可分为两大类:系统软件和应用软件。系统软件是对整个计算机系统的硬件、软件资源进行调度管理和服务,为用户使用机器提供方便,扩大机器功能和提高机器使用效率的各种程序。系统软件一般由计算机厂商提供。而应用软件则是计算机用户在各自应用领域中为解决特定问题的需要而设计的程序或购买的程序。目前应用软件可分为解决某一特定问题的专用程序以及把专用程序分析其规律和相同部分、使之成为具有一定通用性的应用软件。通用应用软件也可商品化随机器提供给用户。
随着计算机的发展,系统软件配置越来越丰富,按其用途可分为三种类型:
①对计算机进行管理操作的软件,主要有操作系统及一些管理程序。
②用于进行计算机维护操作的软件,例如故障诊断程序,自动纠错程序,测试及调试程序等。
③为用户提供服务的程序。语言处理程序是最早出现的软件。程序设计语言是人机交往的工具,由于面向机器的语言(机器语言、汇编语言)无法脱离对机器硬件的依赖,而且程
序本身编制麻烦,难于阅读和交流。故从50年代中期开始,人们便开始研制各种面向过程的高级程序设计语言,如FORTRAN ,BASIC ,PASCLE 等等,至今已经形成数百种的计算机语言系统。为实现将这些语言编制的源程序转换为机器能理解的二进制机器语言程序,就必须为计算机配置各种“翻译”程序,这就是各种语言处理系统软件。通常厂商配置各种语言的翻译程序,由用户选购。即使使用比较容易记忆的面向机器的汇编语言,也须配置翻译软件——“汇编程序”。
语言处理程序按其处理方式可分为三种类型:
① 编译程序——采用类似笔译的方式,将源程序全部扫描后翻译处理成可执行的目
标程序。像FORTRAN 、PASCAL 及C 语言等均采用编译程序处理。
② 解释程序——类似口译方式,即将源程序中语句逐条解释执行,最终无目标程序
生成。人机会话式语言,如:BASIC 、DBASE Ⅲ均采用这种解释处理程序。
③ 汇编语言——将面向机器的汇编语言源程序翻译转换为可执行的机器语言目标
程序。
除语言处理程序外,为用户服务的系统软件通常还有各种编辑服务程序,如文本编辑、屏幕编辑程序等,还有各种通用计算程序和数据库程序等等。
(2)微型计算机系统软件配置
随着微型机的迅速发展,其软件配置越来越丰富,功能越来越增强,以至微型机与小型机的界限越来越模糊。
目前微型机的常用系统软件有:
①磁盘操作系统DOS 操作系统是最基本的系统软件。微型机上配置的操作系统有MS-DOS (磁盘操作系统),UNIX ,XENIX 操作系统等。
磁盘操作系统是使用微型计算机首先要接触的软件,其它软件均在DOS 的直接或间接支持下运行,它是人与计算机之间的接口。
②语言处理程序 由于高级语言种类繁多,故相应的语言处理程序也很多,他们均在操作系统的支持下运行。
③文本编辑程序 该程序也是在操作系统支持下的系统软件,其功能是使用户通过键盘输入编写的源程序以及对源程序进行编辑修改等。
④调试程序(DEBUG ) 这是汇编语言程序设计不可缺少的查错程序,运行调试程序可检查出所编写的程序在逻辑功能上的错误。
⑤数据库及数据库管理程序 这是用语进行数据管理的系统软件,应用十分广泛。 随着软件资源的不断丰富,系统软件的配置也将不断增加。
本章小结
本章首先介绍了微处理器、微型计算机和微型计算机系统的基本概念、组成特点和应用,并对计算机的基础知识进行了介绍。这些介绍都是很概括和很初步的,但都是一些重要的基本概念,对这些概念的掌握和了解,对后续章节的学习是很重要的。
本章要求读者重点掌握以下概念:
1、 处理器、微型计算机和微型计算机系统这三者各自的含义各不相同,但相互之间又
有密切的依存关系,不应混为一谈。
2、 握微处理器、微型计算机和微型计算机系统各自的基本组成。
3、 计算机中数值数据与非数值数据的表示方式(定点数、浮点数),编码方式(原码、
补码),数据表示范围及数值转换规则。基本算术运算和逻辑运算规则。
微机原理 课 1 讲 教 案
绪论
§1-1 计算机的发展概况及分类
§1-1-1 计算机的发展概况
1946年,第一台计算机在美国诞生,至今已有近60年的历史。60年来,计算机经历了
迅猛的发展,得到了广泛的普及,对整个社会的进步和科学的发展产生了极其深远的影响。
在此期间,计算机经历了电子管计算机时代、晶体管计算机时代、集成电路计算机时代、大
规模及超大规模集成电路计算机时代。计算机的功能已经从早期的数值计算、数据处理发展
到可以进行知识处理的人工智能阶段,不仅可以处理文字、字符、图形图象信息,而且可以
处理音频、视频信息,形成了智能化的多媒体计算机。
在推动计算机技术发展的诸多因素中,除了计算机的系统结构和计算机的软件技术发展
起到了重要的作用之外,电子技术特别是微电子技术的发展也起到了决定性的作用。70年
代初,随着大规模集成电路的出现,原来体积很大的中央处理器(CPU )电路集成为一个只
有十几平方毫米的半导体芯片,称为微处理器(MPU )。
微处理器的出现,开创了微型计算机的新时代。以微处理器为核心,再配上半导体存储
器(RAM 、ROM )、输入/输出接口电路(I/O接口电路)、系统总线以及其他支持逻辑,这
样组成的计算机,称为微型计算机。微型计算机的出现,是计算机技术发展史上的一个新的
里程碑,为计算机技术的发展和普及开辟了崭新的途径。
由于微型计算机具有体积小、重量轻、价格便宜、耗电少、可靠性高、通用性和灵活性
好等特点,加上超大规模集成电路工艺技术的迅速发展和成熟,使微型计算机技术得到了极
其迅速的发展和广泛的应用。从1971年美国INTEL 公司首先研制成功世界上第一块微处理
器芯片4004以来,在头十年中,差不多每隔2~3年就推出一代新的微处理器芯片,如今已
经推出了多代微处理器产品。
微处理器是计算机的核心部件。它的性能在很大程度上决定了微型计算机的性能,因此,
微型计算机的发展是以微处理器的发展来更新换代的。
第一代(1971~1973)微处理器和微型计算机是4位微处理器和低档8位微处理器时代。
在这一时期,典型的产品有INTEL 4004、INTEL 8008。其中INTEL 8008是第一个8
位通用微处理器,以4004、8008为CPU 构成的微型计算机分别是MCC-4和MCS-8。主要
应用于各种袖珍计算器、家电、交通灯控制等简单控制领域。
第二代(1973~1978)微处理器和微型计算机是成熟的8位微处理器时代。
1973年INTEL 公司推出了性能更好的8位微处理器8080。它的出现,加速了微处理器
和微型计算机的发展。MOTOROLA 公司的MS6800,ZILOG 公司的Z80,INTEL 公司的
8085等。广泛用于数据处理、工业控制智能仪器仪表及家电等各个领域。
第三代(1978~1983)是16位微处理器时代。
70年代后期,超大规模集成电路的成熟,进一步推动了微处理器和微型计算机生产技
术向更高层次发展。1978年,INTEL 公司率先推出了新一代16位微处理器8086,随后,INTEL
公司的8086/8088,MOTOROLA 公司的MC68000和ZILOG 公司的Z8000,这些高性能的
16位微处理器成为当时国内外市场上流行的典型产品,集成度高达29000管/片。INTEL
8086/8088内部采用流水线结构,设置了指令预取队列,使处理速度大大提高。INTEL 公司
推出了十六位微处理器中的高档芯片80286,它具有多任务系统所必须的任务切换功能、存
储器管理功能和多种保护功能,支持虚拟存储体系结构,地址总线从20位增加到24位,存
储器直接寻址空间达到16MB ,时钟频率提高到5MHZ ~25MHZ 。从80年代中、后期到90
年代初,80286一直是个人计算机IBM PC/AT 机的主流型CPU 。同期的产品还有
MOTOROLA 的MC68010。
第四代(从1983年起)是32位微处理器时代。这一时期的典型产品有ZILOG 公司推
出的Z80000、MOTOROLA 公司推出的MC68020、INTEL 公司推出的80386、80486、
MOTOROLA 公司推出的68040等。
第五代(1993)是INTEL 推出的Pentium 微处理器(简称P5或586)。Pentium 微处理
器的推出,使微处理器的技术发展到了一个崭新的阶段,标志着微处理器完成从CISC 向
RISC 时代的过度,也标志着微处理器向工作站和超级小型机冲击的开始。同期的产品还有
AMD 公司的K5,IBM 、APPLE 、MOTOROLA 三家联合推出的POWOR PC。
继Pentium PRO之后,Intel 公司又推出了Pentium Ⅱ、Pentium Ⅲ、Pentium Ⅳ等微
处理器的极品,成为PC 机的主流CPU 。
随着LSI 和VLSI 技术的进一步发展,微处理器的集成度越来越高,芯片功能越来越强。
从微型机总的发展情况看,为了使微处理器获得高性能,一方面提高集成度,另一方面在系
统设计上追求综合性能的提高,更加全面的采用中大型计算机体系结构中的先进技术,如流
水线技术、高速缓存技术、虚拟存储管理技术、RISC 技术、并行处理技术,更好地支持多
处理器运行环境、多媒体技术和计算机网络应用等。
§1-1-2 计算机的分类
微处理器的字长也就是微型机的字长,字长是最能反映机器性能的技术指标之一。按照
微处理器的字长分类,一般可分为4位、8位、16位、32位和64位机等几种。
如果将微型计算机按照其组装形式来分,可将其分为单片机、单板机和多板微型计算机。
§1-2 微型计算机的特点及应用
§1-2-1 微型计算机的特点
电子计算机通常按照体积、性能和价格分为巨型机、大型机、中型机、小型机和微型机
五类。从系统结构和基本工作原理上说,微型机和其它几类计算机并没有本质上的区别,所
不同的是微型机广泛采用了集成度相当高的器件和部件,因此带来以下一系列特点:
● 体积小、重量轻、功耗低
由于微型计算机中广泛采用了大规模和超大规模集成电路,从而使构成微型机所需要的
器件和部件数量大为减少,使之体积大大缩小。
● 可靠性高、使用环境要求低
微机计算机采用大规模和超大规模集成电路以后,使得系统内使用的器件数量大大减
少,器件、部件间的连线大大减少,接插件数目减少,加上MOS 电路本身工作所需的的功
耗就很低,这些都使微型机的可靠性大大提高,因而,也就降低了对使用环境的要求。
● 结构简单、系统设计灵活、适应性强、使用方便
由于微型计算机多采用规模化的硬件结构,特别是采用总线结构后,使微机系统真正成
为一个开放的体系结构,构成系统的各功能部件和各种适配卡通过标准的总线插槽相连。相
互间的关系变为面向总线的单一关系,大大增加了系统扩充的灵活性和方便性。
● 软件配置丰富
计算机的优良硬件性能是通过丰富多彩的软件体现在人们面前的。因此,软件是计算机
的灵魂。如今,微型计算机之所以得到如此空前的普及和广泛应用,是与它能配置丰富的软
件密切相关,从系统软件到应用软件应有尽有,而且功能强、使用方便,这就加速了微型机
在人类社会的普及。
● 性能价格比高
性能价格比是指机器性能与售价之比。它是衡量计算产品成本性能优劣的一个综合指
标,性能包括字长、主频、速度、配置、可靠性、可操作性等;价格指售价。
微处理器最突出的优点之一就是价格低廉、性能优良。
§1-2-2 微型计算机的应用
1. 工业控制
2. 事物处理
3. 计算机辅助设计和辅助制造CAD/CAM
CAD 是指用计算机帮助设计画图,可使得设计过程走向半自动化和自动化。CAM 的中
心设备是数控机床,围绕数控机床有一组自动化设备,用以完成加工件的运输、组装、加工、
测量、检查等功能。
CAD/CAM能大量节省人力,提高效率。更重要的是提高质量,并使以往人工难以完成
的任务成为可能。
4. 教学培训
5. 家庭娱乐和家政事物管理
6. 科学和工程计算
§1-3 计算机的基础知识
§1-3-1 计算机中的数据表示及编码
一.进位计数制及数制转换
人类在长期的生产劳动实践中创造了我们最熟悉的十进制,而生活中还有十二和十六进
制等多种数系,其共同之处是采用进位计数制。
1.进位计数制
进位计数制是采用位置表示法,即处于不同位置的同一数字符号,所表示的数字不同。
一般说来,如果数制只采用R 个基本符号,则称为基R 数制,R 称为数制的“基数”或简
称“基”;而数制中每一固定位置对应的单位值称为“权”。
进位计数制的编码符合“逢R 进位”的规则,各位的权是以R 为底的幂,一个数可以
按权展开成多项式,例如“逢十进一”的十进制数1992.5可写为
1992.5=1×103+9×102+9×101+2×100+5×10-1
对R 进制数N ,若用n+m个代码Di (-m≤i ≤n-1) 表示,从D n-1到D -m 自左至右排列,
其按权展开多项式为:
n-1n-20-1-m N=Dn-1R +Dn-2R +„+D0R +D-1R +„+D-m R
其中Di 为第i 位代码,它可取0~(R-1)之间的任何数字符号;m 和n 均为正整数,n
表示整数部分的位数,m 表示小数部分的位数;Wi 表示Di 位的权,它是以R 为底的幂。
下面是计算机常用的进位计数制:
二进制 R=2 基本符号 0,1
八进制 R=8 基本符号 0,1,2,3,4,5,6,7
十进制 R=10 基本符号 0,1,2,3,4,5,6,7,8,9
十六进制 R=16 基本符号 0,1,2,3,4,5,6,7,8,9,A ,B ,C ,D ,E ,F
其中,十六进制中的数符A ~F 字母,分别对应十进制的10~15,例如一个十六进制数
8AE6可以写为:
32108AE6H=8×16+10×16+14×16+6×16
在数8AE6后面加H 是为了识别十六进制数而加的标识字母。由于二进制数书写长,难
读难懂,为书写方便,计算机中经常使用8进制或16进制。人们又习惯于十进制,而计算
机内必须采用二进制,故上面四种进制是经常要用的。为了识别起见,二进制数尾加B 作标
识,十进制数尾加D 或省略,八进制数尾加Q ,十六进制数尾则加H 。使用四种进制必然产
生各种数制间的相互转换问题。
2.进位计数制间的相互转换
不同进位计数制数据转换,其实质是进行基数的转换,转换原则是根据:两个有理数相
等,其整数部分和小数部分分别相等。故要分别进行转换。
(1) 二进制与十进制转换
a. 二进制转换为十进制
其转换规则为“按权相加”,即只要把二进制数中位数是1的那些位的权值相加,其和
就是等效的十进制数。二进制数整数与小数部分各位权值对应的十进制数值为:
[1**********]0-1„2 2 2 2 2 2 2 2 2 2 2 2
-22 „
„1024 512 256 128 64 32 16 8 4 2 1 0.5
0.25 „
例1.1 将10101101.101B 转换为十进制数
75320-1-310101101.101B=2+2+2+2+2+2+2
=128+32+8+4+1+0.5+0.125
=173.625D
该转换规则同样适用于将八进制数和十六进制数转换为十进制数,只是相加各项是八进
制或十六进制数符与数位权值之和。
例1.2 将312Q 和2A.68H 转换为十进制数
210 312Q=3×8+1×8+2×8=3×64+8+2=202D
10-1-2 2A.68H=2×16+10×16+6×16+8×16
=32+10+0.375+0.03125
=42.40625D
b. 十进制转换为二进制
整数部分转换——将十进制数连续用基数2去除,直到商数到0为止,每次除得的余数
依次为二进制数由低到高的各位值,简称“除2取余”法。
例1.3 将47D 转换为二进制数
47 =23 余1 2
23
=11 余1
2
11
2 =5 余1
5
=2 余1 2
2
=1 余0 2
1
=0 余1 2
位 低位
所以,47D=101111B。
同理,将十进制数转换为R 进制数,按照“除R 取余”规则即可。
例1. 4 十进制数725D 转换为十六进制数。
按“除16取余”方法进行。
16 725 余数5
16 45 余数13(D )
16 2 余数2
转换结果: 725 D=2D5 H
小数转换——将十进制小数部分连续乘以2,每次所得乘积的整数部分,依次为二进制
数从高到低的各位值。转换规则简称“乘2取整法”。
例1.5 将0.6875D 转换为二进制数。
0.6875 0.3750 0.7500 0.5000
⨯ 2 ⨯ 2 ⨯ 2 ⨯ 2
高位 低位
所以,0.6875D=0.1011B
需要注意的是,十进制小数常常不能准确地换算为等值的二进制数,有换算误差存在,
转换后的二进制数位数,根据字长限制取有限位的近似值。
同理,十进制小数转换为二进制,可以按照“乘R 取整”方法进行。对于具有整数和小数的复合十进制数,只要将整数和小数部分分别按照上述转换方法进行,最后将其二进制整数和小数部分用小数点连接即可。例如从例3和例5可得:
47.6875 D=101111.1011 B
(2) 二进制与八进制和十六进制之间转换
由于八进制、十六进制既可简化书写,又便于记忆,而且与二进制之间转换方便、直观,因此在汇编语言程序及机器语言中指令、数据书写多采用八进制和十六进制。由于八、十六进制基数与二进制有内在联系,即:23=8,24=16。因此,每一位八进制数可以转换为三位二进制数,每一位十六进制数可以转换为四位二进制数,转换直接而且方便。
a. 二—八进制转换
将二进制数以小数点为界,左右分别按照三位一组划分,不足三位者用零补齐,即可换算出对应的八进制数。
例1.6 把110111101.011100B 转换为八进制数。
110111101.011100
6 7 5 . 3 4
即110111101.011100B=675.34Q
反之,由八进制转换为二进制只需要把各自对应的三位二进制写出即可。
例1.7 63.52Q 转换为二进制数。
63.52Q=(110)(011).(101)(010)B
=110011.10101B
b. 二—十六进制转换
将二进制数转换为十六进制数和二—八进制转换方法一样,只是将二进制数按照四位一组进行划分转换。
例1.8 把10111001.01101B 转换为十六进制数。
10111001.01101B=(1011)(1001). (0110)(1000)B
= B 9 . 6 8
所以,10111001.01101B=B9.68H
反之,将十六进制数各位数码用相应四位二进制数表示,即可转换为等效的二进制数。 例1.9 把5F.7A5H 转换为二进制数。
5F.7A5H=(0101)(1111).(0111)(1010)(0101)B
=01011111.[1**********]1B
二.数值数据表示
本节我们着重讨论两个问题:数值数据在机内的定点和浮点表示方法;数据的编码方式。
1.机器数的定点和浮点表示
把数值数据送入计算机处理,仅转换为二进制还不行,必须解决数的符号表示,小数点位置以及用有限设备表示的有效数值范围等问题。数在机器内部的表示形式称为机器数,而计算机对应的数值称为机器数的真值。机器数被存放在有记忆功能的存储器件中。机器数的符号是数字化处理的,用一位编码表示,通常用0表示正数,1表示负数。机器数的小数点位置是事先约定的,它在机器数表示格式中并不出现,但根据设计格式,计算机在运算处理中却清楚地知道其位置。按照规定格式,机器数有定点和浮点两种表示形式。
(1) 定点表示
由于采用进位计数制,任何一个二进制数N 都可以表示为:
N=2±⨯M E
其中:E 是一个二进制整数,称为数N 的阶数;2为底数,M 是二进制尾数,它表示该数的全部有效数字,而阶码E 则指明了小数点位置,表明数值范围。
对任一数N=2±⨯M ,若阶码E 固定不变,则小数点位置是固定的,这种表示则称为数的定点表示,该数称为定点数。计算机中定点数通常有两种约定:一是取E=0,把小数点固定在尾数最高位之前,一是取E=n(n为尾数的位数) ,则把小数点约定在尾数最末位之后,这两种情况阶码无须表示,前者即为定点小数,后者即为定点整数,其格式如图1-1中(a )、(b)所示。
N=-0.0110010
(a)定点小数
E
N=+1001001
(b)定点整数
图 1-1 定点数表示
以上两种定点数的表示,计算机均可采用,目前微型机中,多采用定点整数形式。这里需要强调的是:小数点位置是假想位置,当机器设计时将表示形式约定好,则各种部件及运算线路均按约定形式进行设计。
机器数字长确定后,其数值表示范围即可确定。例如对定点小数,机器数定长N 位,其中一位符号位,n 位有效数值,则N 位定点小数表示范围为:
1.1 1 …1 1 (最小值) 到 0.1 1…1 1(最大值)
n 位 n 位
对应真值表示范围为:
-(1-2-n )≤ X ≤1-2-n
例如,N=16位,则对应表示的真值范围为
---(1-215)≤ X ≤1-215
用n 位设备存放定点整数,则所能表示的真值为负n 位全1到正n 位全1,即
-(2n -1)≤ X ≤2n -1
若N=16位则为:
-(215-1)≤ X ≤215-1
若用n 位表示无符号整数,则其整数值表示范围:
0~2n -1
计算机中参加运算的数,若超过计算机所能表示的数值范围,则称之为溢出。这时,计算机要对溢出进行相应处理操作。
(2) 浮点表示
当阶码值不固定时,数的小数点实际位置将根据阶码值相对浮动,这就构成数的浮点表示。浮点表示要把机器数分为两部分,一部分表示阶码,另一部分表示尾数,阶码和尾数均有各自的符号位。阶符表示数的实际小数点相对约定小数点位置的浮动方向:若阶符为负,实际小数点在约定小数点左边,反之在右边,其位置则由阶码值确定,而尾数符号代表了浮点数的符号。图1-2所示为浮点数的一种表示形式。
阶符 阶码 尾符 尾数
图1-2 一种浮点数表示形式
若尾数用n 位小数表示,浮点数的表示范围根据阶码位置r 和尾数位数n 决定,其浮点数表示范围为:
a=(2 r-1)
---2a ×(1-2n )≤ X ≤+2a ×(1-2n )
例如对十六位机器字长,阶码4位(包括一位符号),尾数12位(一位符号),则数值表示范围:(阶码4位(含1位符号) 为定点整数,尾数12位(含1位符号) 为定点小数。)
a=(2 3-1)=7
---27×(1-211)≤ X ≤+27×(1-211)
--或 -128×(1-211)≤ X ≤+128×(1-211)
可以看出,要扩大数的表示范围,应增加阶码的位数;而要增加精度,就需要增加尾数的位数。对同样字长,浮点数比定点数表示的数值范围要大许多,但浮点数运算操作复杂。浮点数产生溢出,实质上是阶码溢出。
2.机器数的编码表示
数值数据在计算机内采用符号数值化处理后,机器可以表示并识别带符号的数据。为了改进运算方法、简化控制电路,人们研究出多种符号数的编码方式,如原码、反码、补码等。这里我们介绍最常用的原码和补码形式。
(1) 原码
前面已经讨论过最简单直观的机器数表示,即仅将符号位数字化表示为0或1,数的绝对值与符号一起编码,或者说是“符号-绝对值表示”的编码,称为原码。
例: X=+0110111 〔X 〕原=00110111
X=-0110111 〔X 〕原=10110111
其中〔X 〕原称为机器数,X 称为机器数的真值。因此,原码直接可从真值求得,只要将符号位用0和1表示真值的正号和负号,真值的绝对值就是原码的数值部分。
当采用原码表示法时,编码简单直观,与真值转换方便,但也带来一些麻烦。一是引起机器中0的表示不唯一,因为[+0]原=000„0,[-0]原=100„0,0有二义性,给机器判0带来麻烦,必须在设计时约定好机器采用正零或负零。二是用原码进行四则运算时,符号位需要单独处理,而且原码加减运算规则复杂。例如对有符号数的加法规则为:若两个数同号,两数相加,结果冠以共同的符号;若两个数异号,则由大数中减去小数,结果冠以大数的符号。而减法又有一套规则。
(2) 补码
为使数字化后的符号位能作为数参加运算,并解决减法转换为加法的问题,以简化计算机的运算线路,就产生了补码表示。
如果我们想把十进制减法变成加法做,用什么办法呢?减一个十进制数可采用加该数的十进制补数,然后丢弃进位得到相减结果,一个数的十进制补数是用10减去该数得到的。例如,十进制减法:
9-2=7,2的补数是10-2=8
因此 9-2=9+8=17→7(丢掉进位)
这里,实际是把10看成一个模数,记作M 。模数在物理上,是某种计量器的度量。在模数系统中:
9-2=9+8=17→7 (Mod 10)
上式之所以成立,是因为2与8对模数10 是互为补数的,即8=10-2。
生活中使用的模数系统很多,例如时钟为12,有下式成立:
8-3=8+9→5(Mod 12)
因为9=12-3。该式表明将时钟从8点倒拨3格和正拨9格效果一样,时钟均指向5点,我们称+9为-3在模12下的补码,即[-3]=9(Mod 12),这样就可以把减法转换为加法。
计算机中的机器数及其存储、运算设备,如寄存器、加法器等都有固定的长度,因此,都只能进行有模的计算。N 位设备存放n 位二进制代码,则2n 就是其模数,因为两数相加求和时,如果n 位的最高位产生了进位,就会丢掉,这正是模数系统中相加的概念。所以,对任何一个二进制负数都可以找到对应于模数为2n 的正补数,从而将减法运算变为加法运算。同时,由于n 位字长中包括一位符号位,故补码运算中的符号和数一起运算。对补码的产生、定义和有关性质的证明,不准备进行过多的讨论,我们只需要了解补码的形式及其运算特点。
a. 补码的求法。由以上讨论可知,对一个二进制负数可用其模数与真值作加法(实际作减法,因真值为负)求得其补码,即按定义式求
X 0 ≤ X ≤ 2n-1
[X ]补= (mod 2)
n +X -2n-1 ≤ X ≤0
但在机器中实现不方便,因机器中不存在数的真值表示,由于原码表示简单直观,因此在计算机中数是以原码存储的。我们可从数学推导得出一个简便方法,直接从原码求得负数补码。对正数,其补码和原码相同。负数的补码则是将原码符号位保留,其余各位取其反码,即0变1,1变0,再在最低位加1。而正数的补码与原码相同。即
除符号位外
[X ]原 = [X ]补
每位取反,末位加1
例1.10 求X=+1010101的补码。
X 是正数,[X ]补= [X ]原= 01010101
例1.11 求X= -0101110的补码。
X 是负数, =10101110
[X ]补=11010001+1=11010010
b. 补码特点
机器数采用补码表示后,具有如下几个特点:
① 正零、负零表示均为全零,机器零表示统一
〔+0〕补= 0 0 „0 〔-0〕补=1 1 „1+ 1 0 0 „0
n 自动丢失
所以,〔+0〕补= 〔-0〕补=0 0 „0
② 运算时符号位无须单独处理。符号位可作为数值一起参加运算,而且在不溢出
的情况下,仍能得到正确的结果符号。这是由补码性质决定的。
③ 采用补码进行加减法运算时,减法可用加法实现。其运算规则为
[X ]补 +[Y ]补 = [X +Y ]补 (mod 2n)
[X ]补 +[-Y ]补 = [X -Y ]补 (mod 2n)
该规则的严密证明略,我们只应用其结论。由于这种转化使得加减法运算只要一套加法设备即可,从而简化了硬件电路,这是补码表示法的一大优点。
在使用补码表示的计算机中,传送和运算处理过程中机器数均以补码形式出现,因此做减法时必须从[Y ]补求出[-Y ]补,求[-Y ]补方法也很简单,只要对[Y ]补的每一位(包括符号位)都求反,末位加1就得[-Y ]补,即
连符号位
[Y ]补= [-Y ]补
按位取反。末位加1
[Y ]补与[-Y ]补是对模2n 互补,故也称[-Y ]补为[Y ]补的机器负数。
例1.12 用补码求33+(-15)=?
[+33]原=00100001B [+33]补=00100001B
[-15]原=10001111B [-15]补=11110001B
33+(-15)=[+33]补+[-15]补=100010010B=18 进位丢失
例1.13 用补码求67-10=?
[+67]原=01000011B [+67]补=01000011B
[10]原=00001010B [-10]补=11110110B
67-10=[+67]补+[-10]补
=01000011B+11110110B
=00111001B=57
以上两例表明,当带符号的两个数采用补码形式表示时,进行加减运算可把符号位和数值位一起进行运算。若符号位有进(借)位,则丢掉。结果即为两数之和或差的补码形式,这是补码表示的又一优点。
特别要指出的是,采用补码进行加减运算,所有参加运算的数及运算结果都是用补码表示的,若要得到原码还需转换,其转换方法很简单,正数补码与原码相同,对负数将其补码除符号位外,逐位取反,末位加1,就可得到原码。
除符号位外
[X ]补 = [X ]原
每位取反,末位加1
④ 对机器数所表示的数值范围,用补码时要大一点,它可扩充到负数模值。例如:
8位定点整数,用原码表示,其数值范围为-127~+127,而用补码,-128~
+127,目前采用补码表示的机器较多。
3.十进制数的二进制编码表示
由于人们习惯十进制,而计算机采用二进制,为便于人机交往,常常用一组四位二进制编码表示一个十进制数字符号,称为二进制编码的十进制数,二进制编码的十进制数有许多编码方法,它们可以分为有权编和无权编码两类。下表中列出几种形式的编码表示。
表1-2 几种形式的编码表示
(1)有权码
最常用的有权码是8421码,也称BCD 码,这是最自然且简单的编码方法。它用四位二进制编码表示一位十进制数,每一位恰好是二进制低四位的权。由于这种自然联系,故8421有权码有时也称NBCD 码,意为自然(Natural )BCD 码。8421码实现二-十转换很容易,此外还很容易判别十进制数的奇偶性,即奇数的最低位都为1,偶数的最低位都为0。
除8421码外,还有其它几种有权码,表中列出了2421,5221有权码,这两种编码的特点是任何两个十进制数相加等于9时,它们相对应的编码相加结果为1111,这一特点对于减法非常有用,因为按9互补的关系恰好对应二进制模的互补关系。
(2)四位无权码
四位无权码主要有余3码和格雷码两种。余3码是由8421码加0011得来的,各位没有权的关系,余3码具有上面2421,5221有权码的特点,实现减法运算方便,只要对加法产生的值进行修正就可以了。由于每个数余3,两个数余6,恰好跳过四位编码冗余码。
格雷码的编码规则是相邻两代码之间只有一位不同,这样数据传送的可靠性高,适合做
控制编码。
有BCD 码,机器便可以进行十进制运算,设置十进制运算指令。但要注意,由于用四位二进制数表示十进制数,尚有6种编码冗余,除余3码外,均不能由四位二进制最高位进位直接获得十进制数的进位。为此,硬件电路中要设置BCD 码校正电路,指令中有十进制运算调整指令,以保证二-十进制编码运算得到正确的结果。
三.非数值数据的表示
非数值数据不表示数值的大小。它通常分两类:逻辑数和字符数,均以二进制数码表示。 1·逻辑数
逻辑数由无符号二进制代码组成,每位不表示数值,只表示逻辑真值和逻辑假值。逻辑数只能参加逻辑运算,其运算特点是:运算按位进行,各位之间没有进位、借位等情况,即各位相互独立。
由于逻辑数表示和数值数一样,计算机必须根据程序中的指令名来识别运算数据类型。 2·字符数据及其编码
目前,在计算机应用的许多场合中,需要对字符或专用符号进行操作,用高级程序设计语言进行人机交往也是使用字符或符号。由于这些符号不能直接送入计算机,必须先进行数字化处理,用二进制数码表示,我们称之为字符数据。
这些字符如同十进制数字一样,都必须按照一定的规则用一组二进制编码来表示,才能为计算机所识别、处理和传送。当输入信息时,要通过输入设备把输入的字符编成一定格式的代码接收进来,而输出时则要把相应的字符编码送到外部输出设备显示或打印。
字符编码方式有各种规定,或称标准。我国使用的部颁标准字符编码与国际上较普遍使用的ASCII 码基本相同。ASCII 码是美国信息交换标准代码,编码表见附录。
§1-4 微型计算机的基本结构及工作原理
§1-4-1 计算机基本组成及工作原理
一,计算机基本组成
1946年,在美籍匈牙利数学家冯·诺依曼领导的研制小组提出的计算机设计方案中,明确了计算机的五大基本组成,即运算器、逻辑控制装置(控制器)、存储器、输入和输出设备,并描述了五部分职能关系及基于存储程序的基本工作原理。图1-17 为计算机基本组成。
图 1-17 计算机基本组成
1.存储器
存储器是用来存放数据和程序的部件,其基本功能是按要求向指定的位置写入或取出代码信息。
存储器采用按地址存取的工作方式,它由许多存储单元组成,每一个存储单元可以存放一个数据代码,为了区分不同的存储单元,把全部存储单元按照一定的顺序编号,这个编号就称为存储单元的地址。当计算机要把一个数据代码存入某存储单元,或从某存储单元中取出时,首先要提供该存储单元的地址,然后查找相应的存储单元,查到后,才能进行数的存取。因此,能存储大量信息的存储体是存储器的核心。
存储器的工作就是,在运算之前,接收外界送来的程序和数据;在运算过程中,向计算机提供指令和数据信息,保存中间结果;运算结束后,保存运算结果。
2.运算器
运算器是对信息进行加工、运算的部件,具体就是执行二进制代码的基本逻辑运算和算术运算。运算器的运算能力并不高,但计算机运算速度快得惊人,它是用高速度赢得了出色的工作能力。
运算器的核心部件是加法器。运算过程中,它在控制器控制下,从存储器中取数,进行运算后,将结果暂存或送到存储器保存。
3.控制器
控制器是整个机器的控制中心,存储器进行信息的存取,运算器进行各种运算,信息的输入和输出,都是在控制器的同意控制下进行的。
控制器的指挥工作是通过程序进行的。程序中安排好计算机工作的顺序,对可能遇到的各种情况进行处理。运算前,程序被送到存储器保存起来。开始运算后,控制器便自动地到存储器中按顺序逐条取出指令,经过分析后,按指令的要求,向各部件发出执行指令的控制信号,执行指令中规定的操作。
在控制器工作过程中,还要接受执行部件的反馈信息,例如运算器送来的运算结果、状态等。这些反馈信息为控制器判断下一步如何工作提供了依据。
因此,控制器的工作就是根据存储器中存储的程序,周而复始地取指令、分析指令、执行指令,向运算器、存储器、输入输出设备发出控制命令,控制计算机工作。
4.输入设备
人们编写好的程序是经过输入设备送到计算机中去的。输入设备要将程序和数据转换为计算机能识别和接受的信息,如电信号等。目前常用的输入设备是键盘和鼠标。
5.输出设备
输出设备是把运算器中信息处理结果转换成人们所需要的易于理解、阅读的形式。例如在显示终端屏幕上显示或用打印机打印在纸上。
二.微型机的工作原理
1.微处理器CPU 的一般结构
要了解微型机的工作原理,首先要讨论微处理器的结构。CPU 是组成微机系统的核心部件,它具有运算和控制的功能,具体有:
①进行算术和逻辑运算,执行数据处理。
②可暂存数据。
③实现程序控制,即可取指令,对寄存器存,译码分析并执行指令所规定的操作,还要能提供整个系统所需要的定时和控制信号及响应设备发出的中断请求。
尽管各种微处理器的内部结构不尽相同,但为了实现上述基本功能要求,典型的CPU 结构由控制器、工作寄存器、算术逻辑单元和I/O控制逻辑组成。
算术逻辑运算单元是微处理器的核心,所有的算术运算、逻辑运算和移位操作都是有ALU 完成的,ALU 在控制信号控制下,完成不同的操作,ALU 输出经内部总线送工作寄存器接收或输出到外部数据总线上。
工作寄存器暂存用于寻址和计算过程中的信息。工作寄存器有数据寄存器,还有地址寄存器。有的兼有双重用途。数据寄存器用来暂存操作数和中间结果。由于存取寄存器比访问存储器快得多,所以CPU 中含数据寄存器越多,运算速度越快。地址寄存器则用于操作数地址。操作数地址是指令字中的一部分,操作数可放在寄存器中,也可放在存储单元中。为给编程和数据处理提供方便,设计了多种寻找操作数地址的方式,称为寻址方式。
控制器是CPU 的指挥机构,实现指令的取出、寄存、译码和执行。控制器为实现取指令,要设计程序计数器PC 和指令寄存器IR 。PC 中存放即将执行的指令地址,提供给存储器取出该条指令。由于程序中指令是顺序存放的,故当出现程序转移时,就必须改变PC 的内容。指令寄存器IR 用于保存从存储器中取出的当前要执行的指令。分析指令是由指令译码器ID 完成的,ID 发出相应译码输出,使控制逻辑部件产生相应的控制信号去完成指令相应操作,执行指令。为判断指令执行情况,了解数据处理有关结果,程序状态字寄存器(PSW )暂存处理器程序执行的当前状态,例如指示运算结果是否为0,是否溢出,是否进(借)位,或结果为正还是负等。该寄存器在许多微型机中称为状态字寄存器。
I/O控制逻辑包括CPU 中与输入/输出操作有关的逻辑,其任务是处理输入、输出操作。
2.微处理器工作基本过程
图 1-18 是描述CPU 基本工作的流程图,也是指令的执行过程,因为CPU 的工作就是不停地取指令、分析执行指令的过程。直到取出停机指令,程序结束。
去取下条指令
图1-18 CPU 基本工作流程图
从图中可看出,CPU 加电工作后,程序计数器PC 被置入程序的首条指令地址(这是硬件设计保证)。PC 中地址送到CPU 地址总线上,发动相应控制信号启动主存读,取出该单元内容,即首条指令,送入指令寄存器。然后通过指令译码器进行译码分析后,就可确定指令长度(以字节为单位),对多字节指令分几次取入,PC 内容增加相应值,然后由控制逻辑执行指令,若不是转移指令,则重复上述过程,取下条指令执行;若遇到转移指令,则转移地址取代PC 中内容,从转移的目标地址开始执行新指令序列。对条件转移必须检查处理器当前状态是否满足转移条件,当前状态由前面一条指令执行的结果决定,状态标志组成程序状态字,记作PSW ,存放在处理机状态字寄存器中,如状态条件满足转移条件,则实行条件转移,将转移地址置入PC ,从所转移的目标地址执行新指令序列。
§1-4-2 微型计算机系统
现代的计算机与第一代计算机相比,其组成和配置已经发生了很大变化。面对用户的不是仅仅由电子部件构成的计算机,而是由硬件和软件共同组成的计算机系统。
硬件实体是计算机系统的物质基础,软件则是发挥机器功能的关键所在。软件是建立和依托在硬件的基础上的,没有硬件作物质基础,软件功能无从谈起。反之,没有软件的硬件“裸机”将无所作为,不能提供用户直接使用,因此,当代计算机即包含硬件组成,也包含软件支持,二者不可分割,它们共同构成计算机系统,实现信息处理。
1. 微型机系统硬件
所谓硬件,, 是指组成计算机的物理实体。对微型计算机系统来说,硬件包括主机箱及其内部电子线路、键盘、CRT 显示器、打印机等。按逻辑功能将内部部件氛围微处理器CPU 、存储器(主存,辅存)、I/O接口及I/O设备。信息传送由总线和总线控制部件实现。
在当前的微机系统中,通常采用的组织方法如下:
把微处理器、总线控制逻辑、定时逻辑、部分存储器等构成基本系统所必要的逻辑组装在一块较大的印刷电路板上。该印刷电路板称为系统板或主机板,它固定在机箱内。系统板上还装有多个多接点的长形插座(IBM-PC 机的插座有62个接点),每个插座都可以插入另一块印刷电路板与系统板垂直。所谓系统级总线就是系统板上接到这些插座接点上的全部信号线。各插座是并联的,各插座上信号的排列是相同的。构成完整的微机系统所包括的外部设备,如显示器、打印机、磁盘存储器等接口逻辑和扩充容量的存储器,都装在印刷电路板上(小插板),插入主板插座内,然后通过系统级总线与主机板相接。任何新增加的外部设备,只要遵照插座接点的信号约定(总线标准)设计接口的电路,均可“挂”在总线上成为微机系统硬件的一部分,百米减磅厘第亿 硬件配置比较灵活,可以适用于许多应用领域的不同要求。
IBM-PC/XT计算机基本配置中的中央处理器芯片是Intel 8088,主存储器容量从256KB 到640KB ,一般配置两个软盘驱动器,XT 以上的微型机配有硬盘驱动器。随着LSI 技术的不断发展,微处理器的功能极其迅速地发展变化。
2.微型计算机系统软件
(1)软件概述
软件,尚无严密而确切的定义,一般认为软件是指程序和有关的数据和文档。当代计算机离开软件,则成为无实用价值的裸机,因此软件和硬件一样成为计算机系统不可缺少的部分,并与硬件一样影响着计算机的功能。
软件按其功能可分为两大类:系统软件和应用软件。系统软件是对整个计算机系统的硬件、软件资源进行调度管理和服务,为用户使用机器提供方便,扩大机器功能和提高机器使用效率的各种程序。系统软件一般由计算机厂商提供。而应用软件则是计算机用户在各自应用领域中为解决特定问题的需要而设计的程序或购买的程序。目前应用软件可分为解决某一特定问题的专用程序以及把专用程序分析其规律和相同部分、使之成为具有一定通用性的应用软件。通用应用软件也可商品化随机器提供给用户。
随着计算机的发展,系统软件配置越来越丰富,按其用途可分为三种类型:
①对计算机进行管理操作的软件,主要有操作系统及一些管理程序。
②用于进行计算机维护操作的软件,例如故障诊断程序,自动纠错程序,测试及调试程序等。
③为用户提供服务的程序。语言处理程序是最早出现的软件。程序设计语言是人机交往的工具,由于面向机器的语言(机器语言、汇编语言)无法脱离对机器硬件的依赖,而且程
序本身编制麻烦,难于阅读和交流。故从50年代中期开始,人们便开始研制各种面向过程的高级程序设计语言,如FORTRAN ,BASIC ,PASCLE 等等,至今已经形成数百种的计算机语言系统。为实现将这些语言编制的源程序转换为机器能理解的二进制机器语言程序,就必须为计算机配置各种“翻译”程序,这就是各种语言处理系统软件。通常厂商配置各种语言的翻译程序,由用户选购。即使使用比较容易记忆的面向机器的汇编语言,也须配置翻译软件——“汇编程序”。
语言处理程序按其处理方式可分为三种类型:
① 编译程序——采用类似笔译的方式,将源程序全部扫描后翻译处理成可执行的目
标程序。像FORTRAN 、PASCAL 及C 语言等均采用编译程序处理。
② 解释程序——类似口译方式,即将源程序中语句逐条解释执行,最终无目标程序
生成。人机会话式语言,如:BASIC 、DBASE Ⅲ均采用这种解释处理程序。
③ 汇编语言——将面向机器的汇编语言源程序翻译转换为可执行的机器语言目标
程序。
除语言处理程序外,为用户服务的系统软件通常还有各种编辑服务程序,如文本编辑、屏幕编辑程序等,还有各种通用计算程序和数据库程序等等。
(2)微型计算机系统软件配置
随着微型机的迅速发展,其软件配置越来越丰富,功能越来越增强,以至微型机与小型机的界限越来越模糊。
目前微型机的常用系统软件有:
①磁盘操作系统DOS 操作系统是最基本的系统软件。微型机上配置的操作系统有MS-DOS (磁盘操作系统),UNIX ,XENIX 操作系统等。
磁盘操作系统是使用微型计算机首先要接触的软件,其它软件均在DOS 的直接或间接支持下运行,它是人与计算机之间的接口。
②语言处理程序 由于高级语言种类繁多,故相应的语言处理程序也很多,他们均在操作系统的支持下运行。
③文本编辑程序 该程序也是在操作系统支持下的系统软件,其功能是使用户通过键盘输入编写的源程序以及对源程序进行编辑修改等。
④调试程序(DEBUG ) 这是汇编语言程序设计不可缺少的查错程序,运行调试程序可检查出所编写的程序在逻辑功能上的错误。
⑤数据库及数据库管理程序 这是用语进行数据管理的系统软件,应用十分广泛。 随着软件资源的不断丰富,系统软件的配置也将不断增加。
本章小结
本章首先介绍了微处理器、微型计算机和微型计算机系统的基本概念、组成特点和应用,并对计算机的基础知识进行了介绍。这些介绍都是很概括和很初步的,但都是一些重要的基本概念,对这些概念的掌握和了解,对后续章节的学习是很重要的。
本章要求读者重点掌握以下概念:
1、 处理器、微型计算机和微型计算机系统这三者各自的含义各不相同,但相互之间又
有密切的依存关系,不应混为一谈。
2、 握微处理器、微型计算机和微型计算机系统各自的基本组成。
3、 计算机中数值数据与非数值数据的表示方式(定点数、浮点数),编码方式(原码、
补码),数据表示范围及数值转换规则。基本算术运算和逻辑运算规则。