《微机原理与应》PPT课件.ppt
第一章、微型计算机基础,主要内容微型计算机的发展概况微型计算机系统简介微型计算机的数制原码、补码、反码及其运算法则数的定点与浮点表示算术运算与逻辑运算,1.1 微型计算机的发展概况,计算机的诞生,它装有 18800个电子管、7万个电阻器,1500个继电器,重达30吨,占地面积150多平方米,耗电150千瓦。,1943-1946年,第一台电子计算机 ENIAC(Electronic Numerical Integrator and Calculator)在美国 宾夕法尼亚大学 诞生。,1.1.1 微型计算机的发展简史,第一代:电子管计算机(1946-1957年)以电子管为逻辑元件 速度低、内存容量小、体积庞大、造价昂贵,计算机发展经历四代:,第二代:晶体管计算机(1957-1964年)以晶体管为逻辑元件 降低了成本和体积,提高了运算速度;,1.1.1 微型计算机的发展简史,第三代:集成电路计算机(1964-1972年)以集成电路为逻辑元件 体积进一步缩小;配有各类操作系统,性能极大提高;,计算机发展经历四代:,第四代:大规模集成电路计算机(1972年至今)以超大规模集成电路为逻辑元件 以微型机为典型代表;1971年,第一台微型计算机诞生,目前又提出第五代计算机:智能 计算机(非冯 诺依曼机)人工智能、神经网络;运算理论及系统结构的变革;,1.1.1 微型计算机的发展简史,第一代微处理器:1971-1973年(4位和8位微处理器),微处理器是微型计算机的重要部件,其发展经历五代:,第三代微处理器:1978-1981年(16位微处理器),第四代微处理器:1981-1992年(32位微处理器),第五代微处理器:1992年以后(64位微处理器),第二代微处理器:1973-1978年(8位微处理器),1.1.2 微型计算机的应用,科学计算 数据处理与信息管理 CAD/CAM/CAA/CAl中的应用 过程控制和仪器仪表智能化 军事领域中的应用 多媒体系统和信息高速公路 家用电器和家庭自动化,1.微处理器只是一个中央处理器(CPU),由以下几部分组成:运算器,寄存器,控制器,内部总线。,注意:微处理器不能构成独立的工作系统,也不能独立执行程序。需配有存储器、输入/输出接口。,1.2 微型计算机系统简介,2.微型计算机的组成:CPU、存储器(RAM,ROM)、输入输出接口电路、系统总线,注意:微型计算机具有运算功能,可独立执行程序。但若没有输入/输出设备,则数据无法输入,结果亦无法显示或输出,还是不能正常工作。,1.2 微型计算机系统简介,微型计算机,3.微型计算机系统的构成:微型计算机外部输入输出设备软件,1.2 微型计算机系统简介,微型计算机系统,1.3 微型计算机的数制,规定:以字符打头的十六进制数前面必须加0,例如:0F789H,1.3.1 进位计数制,进位计数制是指用数字符号排列成数位,按由低位到高位的进位方法进行计数,它涉及到数码、位权与基数。,数码:是各数位中允许选用的数字符号;如十进制为:0,1,2,9,二进制为:0,1。同一个数码在不同数位上所代表的数值不同,表示的数值等于该数码本身乘以一个与所在数位有关的常数(即:位权)。,位权:对每个数位赋予一定的位值,该数称为位权,简称权。它与数制及在数中的位置有关。如二进制中的20、21、22;十进制的100、101、102等。,基数:是指计数制中所允许选用的数码个数。如十进制的基数为10(0,1,2,9),二进制的基数为2(0,1),十六进制的基数为16(0,1,2,9,A,F)。,1.3.1 进位计数制,Di为0R-1中的任一个数;R为基数;Ri为权值,一进位计数制数,可展开为:,例1.1,例1.1,例1.1 八进制数(127.4)8中的2代表的数值是什么?整个数代表什么数值?,分析:2处于整数部分D1 位置,因此它代表的数值为281=16。,于是,按前面的公式展开得:,(127.4)8=182+281+780+48-1=(87.5)10,1.3.2 数制间的相互转换(1),二、八、十六进制数十进制数:按权展开,例如:,=123+122+021+120+02-1+12-2+12-3,=8+4+0+1+0+0.25+0.125=(13.375)10,=282+781+680=(190)10,=10162+3161+15160=(2623)10,(1101.011)2,(276)8,(A3F)16,数制间的相互转换(2),整数部分的转换采用辗转相除法小数部分的转换采用乘基取整法,辗转相除法,就是用基数不断去除要转换的十进制数,直至商为0,将各次计算所得的余数,按最后的余数为最高位,第一次余数为最低位,依次排列,即得转换结果。,十进制数二、八、十六进制数:,乘基取整法,就是用基数不断去乘要转换的十进制数,直至满足要求的精度或小数部分为0,取每次乘积结果的整数部分,以第一次取整为最高位,依次排列,即得转换结果。,事例,辗转相除法示例(1),例1.2 将(226)10转换为二进制数。,226,113,56,28,14,7,3,1,0,余0,余1,余0,余0,余0,余1,余1,余1,(最高位),(最低位),按箭头方向依次排列,11100010,所以(226)10=(11100010)2,商为0,转换结束。,除基取余,辗转相除法示例(2),例1.3 将(226)10转换为八进制数。,226,28,3,0,余2,余4,余3,(最高位),(最低位),按箭头方向依次排列,342,所以,(226)10=(342)8,商为0,转换结束。,除基取余,辗转相除法示例(3),例1.4 将(226)10转换为十六进制数。,226,14,0,余2,余14,(最高位),(最低位),按箭头方向依次排列,E2,所以,(226)10=(E2)16,商为0,转换结束。,除基取余,乘基取整法示例(1),例1.5 将(0.625)10转换为二进制数。,0.625,2,1.250,2,0.250,2,0.50,1.0,取整1,取整0,(最高位),(最低位),按箭头方向依次排列,0.101,取整1,小数部分为0,转换结束。,所以,(0.625)10=(0.101)2,乘基取整,乘基取整法示例(2),例1.6 将(0.625)10转换为八进制数和十六进制数。,0.625,8,5.000,16,0.625,10.000,取整5,小数部分为0,转换结束。,取整10,小数部分为0,转换结束。,所以,(0.625)10=(0.5)8,乘基取整,所以,(0.625)10=(0.A)16,例1.7,例1.7 求对应于(226.625)10的二进制数。,分析:本题中十进制数既有整数部分又有小数部分,应先分别加以转换,然后再合并在一起得到最后结果。,因为,(226)10=(11100010)2(0.625)10=(0.101)2所以(226.625)10=(11100010.101)2,数制间的相互转换(3),二进制数八进制数:,整数向左,小数向右 三位合一,不足补 0,二进制数十六进制数:,整数向左,小数向右 四位合一,不足补 0,例:(11010111.0111101)2=,11010111.0111101,(,)2,0,00,=(327.364)8,例:(11010111.0111101)2=,11010111.0111101,(,0,)2,=(D7.7A)16,数制间的相互转换(4),八进制数二进制数:一扩三,(264.57)8=(,十六进制数二进制数:一扩四,(7F.C4)16=(,提示:整数高位0和小数低位0可省去不写,010,111,)2,=(10110100.101111)2,101,100.,110,=(1111111.110001)2,)2,0100,1100,1111.,0111,1.3.3 数的表示 机器数与真值,机器数就是一个数在计算机中的表示形式,即二进制代码。如10010、11001100等。一个机器数所表示的数值称为真值。如+10、-29H、+1011B等。可以是各种进制数。一个数可以是有符号数,也可以是无符号数。对于一个二进制无符号数来说,机器数与真值相同,此时计算机的全部有效位都用来存放数据。对于n位字长的计算机来说,整数范围为02n-1。,机器数与真值(续),对于一个二进制有符号数来说,数的最高位是符号位:0表示正数,1表示负数。在有符号数中,符号数字化后的数称为机器数,而用+或-表示的数值称为真值,真值可以用二进制数或十进制数表示。对于n位字长的计算机来说,有符号数的整数范围为-(2n-1-1)(+2n-1-1)。有符号数与无符号数在计算机中的表示形式相同,须预先约定或由指令决定。,有符号数的表示 原码,有符号二进制数可以采用原码、补码和反码三种不同的编码形式表示。进行算术运算的有符号数通常以补码形式表示。将数真值形式中的+/-号用0/1表示,而数据本身不变的机器数叫做数的原码形式,简称原码。当字长为n时,其数据范围为-(2n-1-1)+(2n-1-1)。数-2n-1的原码不存在。数0有两种表示形式,即+0和-0。,看几个例子吧!,原码举例,如:00000000B=+0;10000000B=0 11111111B=127;01111111B=+127,又如:10010 表示真值 2;0101 表示真值+5等。,例1.10:设字长为8,X的十进制数为+85,Y的十进制数为-85,求X、Y的原码。解:十进制数85转换成二进制数1010101,所以 X原=01010101 Y原=11010101,原码的概念掌握了吧?,有符号数的表示 反码,对负数的原码除符号位外,其余位按位求反,得到的另一种表示形式,即反码形式。正数的反码与原码具有相同的形式。当字长为n时,其数据范围为(2n-1-1)+(2n-1-1)。数-2n-1的反码不存在。数0有两种反码形式。,看几个例子吧!,反码举例,例1.11:有反码00000000B和10000000B,求其真值。解:根据反码的定义,最高位为符号位,后面即为数据的绝对值数据的反码。00000000B=+(0000000)2=+0;10000000B=-(1111111)2=-127=-(28-1-1)。,例1.12:有8位字长反码11111111B和01111111B,求其真值。解:11111111B=-(0000000)=-0 01111111B=+(1111111)2=+127=+(28-1-1),求例1.10中的两个数的反码形式。+85反=+85原=01010101-85反=10101010,反码的概念掌握了吧?,有符号数的表示 补码,负数的补码等于其反码加1(求反加一),也等于0减去其真值的绝对值。正数的补码与原码具有相同的形式。在补码中,数0只有一种表示形式,数-2n-1的补码存在。当字长为n时,数据范围为-2n-1+(2n-1-1)。使用补码可以用加法代替减法,消除加减法运算的区别,简化了运算器;而且运算时符号位和数值部分一起参加运算,简化了处理过程,故在计算机运算中广泛使用。,看几个例子吧!,补码举例,例1.13:有补码00000000B和10000000B,求其真值。解:根据补码的定义,最高位为符号位,后面即为数据的绝对值或数据的求反加一。00000000B=+(0000000)2=+0;10000000B=-(10000000)2=-128=-28-1。,例1.14:有8位字长补码11111111B和01111111B,求其真值。解:11111111B=-(0000001)=-1 01111111B=+(1111111)2=+127=+(28-1-1),求例1.10中的两个数的补码形式。+85补=+85原=01010101 85补=-85反+1=10101011,补码的概念一定要掌握!,=0-+85原,原码、反码、补码小结,符号位+数据位。正数的三种码形式相同。,定点数与浮点数,定点数就是小数点在数中的位置固定不变;浮点数是指小数点在数中的位置是浮动的,可以发生变化。小数点固定位置的两种简单约定:(1)在最高数位之前,符号位之后是纯小数;(2)在最低位之后是纯整数。,任何一个数N的二进制浮点形式可表示为N=2jS,其中S称为尾数,j称为阶码。这种表示格式由阶符(1位,表示阶码的正负号)、阶码(一般为纯整数,决定数的范围)、数符(1位,表示尾数的正负号)、尾数(一般为纯小数,决定有效数字的精度)四个部分组成。,为充分利用其有效位,常对其规格化,使0.5|S|1,看个例子,看几个例子吧!,定点数示例,例1.15:有二进制码1101B,试求小数点在最低位和最高位时的值。,解:小数点在最低位时,即为纯整数,所以 1101B=(1101)2=23+22+20=(13)10 小数点在最高位时,即为纯小数,所以 1101B=(0.1101)2=2-1+2-2+2-4=(0.8125)10,定点数好理解的啦!,浮点数示例,例如,二进制数1011.101可以写成如下的浮点形式:0.00101110126,0.0101110125,0.101110124,1.01110123,10.1110122,101.110121,10111.012-1,101110.12-2等等。,规格化数,以上几种浮点形式中,只有前三种的尾数为纯小数。如果用8位来表示此二进制数,其中阶符阶码为4位,尾符及尾数为4位,均用原码表示,则这三种形式对应的浮点数分别为:01100001,01010010,01000101,可以看出,最后一种的精度最高。,1.4 计算机中常用编码,计算机中数、字母、符号等均用二进制数表示,用若干位二进制数的组合表示字符的编码称为二进制编码。常用的二进制编码有BCD码和ASCII码。BCD码(Binary Coded Decimal),即二十进制编码方式,用四位二进制数表示一位十进制数。ASCII码(American Standard Code for Information Interchange)是一种美国标准,称为“信息交换标准代码”,用7位二进制数编码,可以表示128个字符。GB2312-80汉字编码,即国标码,用两个字节表示一个汉字,两字节最高位均置“1”后形成机内码。,BCD码,8421BCD码(简称BCD码),即将1位十进制数09分别用4位二进制编码来表示,而这四位的权从高位到低位依次是8,4,2,1。,1.5 计算机运算基础,算术运算,包括加减乘除。其中,加减法运算是基本运算,利用加减法运算可以实现乘除法运算。逻辑运算主要包括“与”()、“或”()、“非”和“异或”()等。,1.5.1 无符号数的算术运算,例1.19,例1.19:计算10011010+00110111=?,因此,10011010+00110111=11010001,1,1,1,1,1,0,1,0,0,1,0,1,1,要加进位,例1.20,例1.20:计算10011010-00110111=?,因此,10011010-00110111=01100011,1,1,1,1,1,1,1,0,0,0,1,1,0,要减借位,例1.21,例1.21:二进制数1101.1与101.1相乘。,1 1 0 1 1,1 1 0 1 1,1 1 0 1 1,1,0 0 0 0 0,+,1,1,1,1,1,1,进位,积,(74.25),1,0,0,1,0,1,0,0,.,例1.22,例1.22:求二进制数100111除以110的商。,1,1 1 0,1 1,1,1,1 1 0,1,1,0,.,0,1 1 0,0,1,(6.5),1.5.2 有符号数的运算(补码运算),在计算机中,凡是有符号数一律用补码形式存放和运算,其运算结果也用补码表示。采用补码运算可以将减法变成补码加法运算,在微处理器中只需加法电路就可以实现加减法运算。规则:X+Y补=X补+Y补X-Y补=X补+-Y补 两个同符号数相加,可能产生溢出。,什么是溢出?,溢出,所谓溢出,就是两个数相加,结果超出了微处理器所能表示的数值范围。判断规则:两个正数相加结果变成了负数;或两个负数相加结果变成了正数。两个不同符号数相加,不会产生溢出。,来看个例子!,溢出示例,例1.23:判断下列补码运算是否发生溢出。(1)11111101+00000011(2)10001000+11101110(3)01000001+01000011(4)11001000+11000000,解:可以看出CPU为8位:(1)两个不同符号的数相加,不可能发生溢出。(2)10001000+11101110=101110110=01110110(有进位)两个负数相加,结果为正数01110110,因此发生了溢出。(3)01000001+01000011=10000100两个正数相加,结果为负数10000100,因此发生了溢出。(4)11001000+11000000=110001000=10001000(有进位)两个负数相加,结果仍为负数10001000,因此没有发生溢出。,在后面的有关指令中还会给大家进一步讲解。,1.5.3 逻辑运算,主要包括“与”()、“或”()、“非”和“异或”()等。有关运算规则在数字电路中学过。在两个多位逻辑变量之间进行逻辑运算时,在对应位之间按上述规则进行运算,不同位之间不发生任何关系,没有算术运算中的进位或借位问题。,来看个例子!,逻辑运算示例,例1.24:11010101 11010101 11010101 01100011 01100011 01100011 结果 11110111 01000001 10110110,后面学习相关指令时,再进一步体会。,第1章教学要求,1.了解微机发展概况、了解和区分微处理器、微型计算机和微型计算机系统;2.掌握数制的相互转换、有符号数的表示,常用编码和算术、逻辑运算。,作业:(P41)1-5,1-6,1-11,1-14,