1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第1章 微型计算机基础,第1章 微型计算机基础,1.1 计算机中的数制及相互转换,1.2 二进制数的运算,1.3 带符号数的表示,1.4 定点数和浮点数,1.5 BCD码和ASCII码,1.6 微型计算机的组成及工作过程,1.1 计算机中的数制及相互转换,1.1.1 进位计数制,按进位原则进行计数的方法,称为进位计数制。十进制数有两个主要特点:,(1)有 10 个不同的数字符号:0、1、2、9;,(2)低位向高位进位的规律是“逢十进一”。,因此,同一个数字符号在不同的数位所代表的数值是不同的。如555.5中
2、 4 个 5分别代表500、50、5 和 0.5,这个数可以写成555.5=510,2,+510,1,+510,0,+510,-1,式中的10称为十进制的基数,10,、10,1,、10,0,、10,-1,称为各数位的权。,任意一个十进制数N都可以表示成按权展开的多项式:,其中,d,i,543.21=510,2,+410,1,+310,0,+210,-1,+110,-2,一般而言,对于用 R 进制表示的数 N ,可以按权展开为,式中,a,i,是 0、1、(R-1)中的任一个,m、n是正整数,R是基数。在 R 进制中,每个数字所表示的值是该数字与它相应的权R,i,的乘积,计数原则是“逢 R进一”。
3、,其中,M为尾数,为纯二进制小数,E称为阶码。,0100 1010 0101 1011 .,即 (4A5B.,1 计算机中的数制及相互转换,例 1 求1001B+1011B。,001 010 011 .,例 4 求10100101B/1111B,程序计数器PC:存放将要执行的指令地址。,若X=+Xn-2Xn-3X1X0,则X原=0Xn-2Xn-3X1X0=X;,6 微型计算机的组成及工作过程,当R=16时,称为十六进制。,5 BCD码和ASCII 码,011 010,反之,采用“一分为三”的原则,每位八进制数用三位二进制数表示,就可将八进制数转换为二进制数。,即 XY=1100B,1.二进制数
4、,当 R=2 时,称为二进位计数制,简称二进制。在二进制数中,只有两个不同数码:0和1,进位规律为“逢二进一”。任何一个数 N,可用二进制表示为,例如,二进制数 1011.01 可表示为,(1011.01),2,=12,3,+02,2,+12,1,+12,0,+02,-1,+12,-2,2.八进制数,当R=8 时,称为八进制。在八进制中,有 0、1、2、7 共 8 个不同的数码,采用“逢八进一”的原则进行计数。如(503),8,可表示为,(503),8,=58,2,+08,1,+38,0,3.十六进制,当R=16时,称为十六进制。在十六进制中,有 0、1、2、9、A、B、C、D、E、F共 16
5、个不同的数码,进位方法是“逢十六进一”。,例如,(3A8.0D),16,可表示为,(3A8.0D),16,=316,2,+1016,1,+816,0,+016,-1,+1316,-2,表1.1 各种进位制的对应关系,十进制,二进制,八进制,十六进制,十进制,二进制,八进制,十六进制,0,0,0,0,9,1001,11,9,1,1,1,1,10,1010,12,A,2,10,2,2,11,1011,13,B,3,11,3,3,12,1100,14,C,4,100,4,4,13,1101,15,D,5,101,5,5,14,1110,16,E,6,110,6,6,15,1111,17,F,7,11
6、1,7,7,16,10000,20,10,8,1000,10,8,1.1.2 不同进制间的相互转换,1.二、八、十六进制转换成十进制,例 1,将数(10.101),2,(46.12),8,(2D.A4),16,转换为十进制。(10.101),2,=12,1,+02,0,+12,-1,+02,-2,+12,-3,=2.625,(46.12),8,=48,1,+68,0,+18,-1,+28,-2,=38.156 25,(2D.A4),16,=216,1,+1316,0,+1016,-1,+416,-2,=45.640 62,2.十进制数转换成二、八、十六进制数,任意十进制数 N 转换成 R 进制
7、数,需将整数部分和小数部分分开,采用不同方法分别进行转换,然后用小数点将这两部分连接起来。,(1)整数部分:除基取余法。,分别用基数 R 不断地去除 N 的整数,直到商为零为止,每次所得的余数依次排列即为相应进制的数码。最初得到的为最低有效数字,最后得到的为最高有效数字。,例 2,将(168),10,转换成二、八、十六进制数。,故:(0.645),10,=(0.10100),2,=(0.51217),8,=(0.A51EB),16,例 4 将,(168.645),10,转换成二、八、十六进制数。,根据例2、例 3 可得,(168.645),10,=(10101000.10100),2,=(25
8、0.51217),8,=(A8.A51EB),16,3.二进制与八进制之间的相互转换,由于2,3,=8,故可采用“合三为一”的原则,即从小数点开始分别向左、右两边各以3位为一组进行二八换算:若不足 3 位的以 0 补足,便可将二进制数转换为八进制数。反之,采用“一分为三”的原则,每位八进制数用三位二进制数表示,就可将八进制数转换为二进制数。,例 5,将(101011.01101),2,转换为八进制数。,101 011 .011 010,5 3 .3 2,即 (101011.01101),2,=(53.32),8,例 6,将(123.45),8,转换成二进制数。,1 2 3,.,4 5,001
9、010 011,.,100 101,即 (123.45),8,=(1010011.100101),例 7,将(110101.011),2,转换为十六进制数。,0011 0101 .0110,3 5 .6,即 (110101.011),2,=(35.6),16,例 8,将(4A5B.6C),16,转换为二进制数。,4 A 5 B .6 C,0100 1010 0101 1011 .0110 1100,即 (4A5B.6C),162,1.2 二进制数的运算,1.2.1 二进制数的算术运算,二进制数只有 0和1两个数字,其算术运算较为简单,加、减法遵循“逢二进一”、“借一当二”的原则。,1.加法运算
10、,规则:0+0=0;0+1=1;1+0=1;1+1=10(有进位),例 1,求1001B+1011B。,2.减法运算,规则:0-0=0;1-1=0;1-0=1;0-1=1(有借位),例 2,求1100B-111B。,3.乘法运算,规则:00=0;01=10=0;11=1,例 3,求1011B1101B。,即 10100101B/1111B=1011B,4.除法运算,规则:0/1=0;1/1=1,例 4,求10100101B/1111B,1.2.2 二进制数的逻辑运算,1.“与”运算,“与”运算是实现“必须都有,否则就没有”这种逻辑关系的一种运算。运算符为“”,其运算规则如下:,00=0,01=
11、10=0,11=1,例 5,若X=1011B,Y=1001B,求XY。,.,即 XY=1001B,2.“或”运算,“或”运算是实现“只要其中之一有,就有”这种逻辑关系的一种运算,其运算符为“+”。“或”运算规则如下:,0+0=0,0+1=1+0=1,1+1=1,例 6,若X=10101B,Y=01101B,求X+Y。,10101,01101,11101,+,即 X+Y=11101B,3.“非”运算,“非”运算是实现“求反”这种逻辑的一种运算,如变量A的“非”运算记作 。其运算规则如下:,A,例 7,若A=10101B,求 。,A,4.“异或”运算,“异或”运算是实现“必须不同,否则就没有”这种
12、逻辑的一种运算,运算符为“”。其运算规则是:,例 8,若X=1010B,Y=0110B,求XY。,1010,0110,1100,即 XY=1100B,1.3 带符号数的表示,1.3.1 机器数及真值,计算机在数的运算中,不可避免地会遇到正数和负数,那么正负符号如何表示呢?由于计算机只能识别0和1,因此,我们将一个二进制数的最高位用作符号位来表示这个数的正负。规定符号位用“0”表示正,用“1”表示负。例如,X=-1101010B,Y=+1101010B,则X表示为:11101010B,Y表示为01101010B。,1.3.2 数的码制,1.原码,当正数的符号位用0表示,负数的符号位用1表示,数值
13、部分用真值的绝对值来表示的二进制机器数称为原码,用X原表示,设X为整数。,若X=+X,n-2,X,n-3,X,1,X,0,则X,原,=0X,n-2,X,n-3,X,1,X,0,=X;,若X=-X,n-2,X,n-3,X,1,X,0,则X,原,=1X,n-2,X,n-3,X,1,X,0,=2,n-1,-X。,其中,X为n-1位二进制数,X,n-2,、X,n-3,、X,1,、X,0,为二进制数0或1。例如+115和-115在计算机中(设机器数的位数是8)其原码可分别表示为,+115,原,=01110011B;-115,原,=11110011B,可见,真值X与原码X,原,的关系为,值得注意的是,由于
14、+0,原,=00000000B,而-0,原,=10000000B,所以数 0的原码不唯一。,8位二进制原码能表示的范围是:-127+127。,2.反码,一个正数的反码,等于该数的原码;一个负数的反码,由它的正数的原码按位取反形成。反码用X,反,表示。,若X=-X,n-2,X,n-3,X,1,X,0,则X,反,=1X,n-2,X,n-3,X,1,X,0,。例如:X=+103,则X,反,=X,原,=01100111B;X=-103,X,原,=11100111B,则X,反,=10011000B。,3.补码,“模”是指一个计量系统的计数量程。如,时钟的模为12。任何有模的计量器,均可化减法为加法运算。
15、仍以时钟为例,设当前时钟指向11点,而准确时间为7点,调整时间的方法有两种,一种是时钟倒拨4小时,即11-4=7;另一种是时钟正拨8小时,即11+8=12+7=7。由此可见,在以12为模的系统中,加8和减4的效果是一样的,即 -4=+8(mod 12),对于n位计算机来说,数X的补码定义为,即正数的补码就是它本身,负数的补码是真值与模数相加而得。,例如,n=8时,+75,补,=01001001B,-73,补,=10000000 B-01001001B=10110111B,0,补,=+0,补,=-0,补,=00000000B,可见,数0的补码表示是唯一的。在用补码定义求负数补码的过程中,由于做减
16、法不方便,一般该法不用。负数补码的求法:用原码求反码,再在数值末位加1,即:X,补,=X,反,+1。例如:-30,补,=-30,反,+1=+30,原,+1=11100001+1=11100010B。8位二进制补码能表示的范围为:-128+127,若超过此范围,则为溢出。,1.4 定点数和浮点数,1.定点法,定点法中约定所有数据的小数点隐含在某个固定位置。对于纯小数,小数点固定在数符与数值之间;对于整数,则把小数点固定在数值部分的最后面,其格式为,纯小数表示:数符.尾数,数 符,尾 数,.小数点,数 符,尾 数,.小数点,2.浮点法,浮点法中,数据的小数点位置不是固定不变的,而是可浮动的。因此,
17、可将任意一个二进制数N表示成,N=M2,E,其中,M为尾数,为纯二进制小数,E称为阶码。可见,一个浮点数有阶码和尾数两部分,且都带有表示正负的阶码符与数符,其格式为,阶 符,阶码E,数 符,尾数M,设阶码 E的位数为m位,尾数M的位数为n位,则浮点数N的取值范围为,2,-n,2,-2,m,+1,|N|(1-2,-n,)2,2,m,-1,为了提高精度,发挥尾数有效位的最大作用,还规定尾数数字部分原码的最高位为1,叫做规格化表示法。,如0.000101表示为:2,-3,0.101,1.5 BCD码和ASCII 码,1.5.1 BCD码,十进制数,8421BCD码,十进制数,8421BCD码,0,0
18、000,5,0101,1,0001,6,0110,2,0010,7,0111,3,0011,8,1000,4,0100,9,1001,表1.2 8421BCD编码表,1.5.2 ASCII码,表 1.3 ASCII 码 表,1.6 微型计算机的组成及工作过程,1.6.1 基本组成,图 1.1 微型计算机的基本组成,CPU中还包括若干寄存器(Register),它们的作用是存放运算过程中的各种数据、地址或其它信息。寄存器种类很多,主要有:,通用寄存器:向 ALU提供运算数据,或保留运算中间或最终的结果。,累加器A:这是一个使用相对频繁的特殊的通用寄存器,有重复累加数据的功能。,程序计数器PC:存
19、放将要执行的指令地址。,指令存储器IR:存放根据PC 的内容从存储器中取出的指令。,在微型计算机中,CPU一般集成在一块被称为微处理器(MPU,Micro Processing Unit)的芯片上。,2.存储器M,存储器(Memory)是具有记忆功能的部件,用来存储数据和程序。存储器根据其位置不同可分为两类:内存储器和外存储器。内存储器(简称内存)和CPU直接相连,存放当前要运行的程序和数据,故也称主存储器(简称主存)。它的特点是存取速度快,基本上可与CPU处理速度相匹配,但价格较贵,能存储的信息量较小。外存储器(简称外存)又称辅助存储器,主要用于保存暂时不用但又需长期保留的程序和数据。存放在
20、外存的程序必须调入内存才能进行。外存的存取速度相对较慢,但价格较便宜,可保存的信息量大。,3.输入/输出接口(I/O接口),输入/输出(I/O)接口由大规模集成电路组成的I/O器件构成,用来连接主机和相应的I/O设备(如:键盘、鼠标、显示器、打印机等),使得这些设备和主机之间传送的数据、信息在形式上和速度上都能匹配。不同的I/O设备必须配置与其相适应的I/O接口。,4.总线,总线(BUS)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是CPU内部之间的连线。外部总线是指CPU与其它部件之间的连线。外部总线有三种:数据总线DB(Data Bus),地址总线 AB(
21、Address Bus)和控制总线 CBControl Bus)。,1.6.2 基本工作过程,根据冯诺依曼原理构成的现代计算机的工作原理可概括为:存储程序和程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据,通过一定的方式输入并存储在计算机的存储器中。程序控制是指计算机能自动地逐一取出程序中的一条条指令,加以分析并执行规定的操作。,来看Z=X+Y的执行过程。,假定我们有一个虚拟机SAM,主存储器由4K16位的字组成,CPU 中有一个可被程序员使用的16位累加器A。,SAM指令格式为,操作码,地址码,SAM中有如下指令:,假设X和Y均已存放在存储单元中。注意,X
22、是个变量名,可以是某个存储单元的地址,该单元中存放的是X的值。,(1)从地址为X的单元中取出X的值送到累加器中。,(2)把累加器中的X与地址为Y 的单元的内容相加,结果存放在累加器中。,(3)把累加器中的内容送到地址为Z的单元中。,相应的SAM指令是:,LOAD X,ADD Y,STORE Z,表 1.4 计算Z=X+Y的程序,指令被取出后送入指令寄存器 IR(Instrction Register),由控制器中的译码器对指令进行分析,识别不同的指令类别及各种获得操作数的方法。以加法指令ADD Y为例,译码器分析后得到如下结果:,(1)这是一个加法指令;,(2)一个操作数存放在Y(地址为A01H)中,另一操作数隐含在累加器 A中。,接着,操作进入指令执行阶段。仍以 ADD Y 为例,将Y 与A中内容送入 ALU,进行加法运算,结果送入A。,