《西南交大-微机原理ppt课件第1章.ppt》由会员分享,可在线阅读,更多相关《西南交大-微机原理ppt课件第1章.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章:计算机基础1本章内容提要1微机的发展历史,微机系统组成,三总线概念2微处理器构造及其指令执行过程3进位计数值(2、8、10、16进制)及其相互转换,二进制数的运算规则4编码(BCD码,ASCII码,汉字码,图形信息编码)5无符号数及带符号数的表示方法;机器数和真值;带符号数的编码和运算;定点数和浮点数本章难点:机器数与真值、溢出的判断方法2第一节:计算机的基本概念34电子计算机的定义:电子计算机是一种能够自动而又精确地对信息进行处理的现代化电子设备。电子计算机的起源:为了加快计算速度与精度,人们一直在尝试制造计算机 从机械计算机到电子计算机第 一 台 具 有 现 代 意 义 的 电 子
2、 计 算 机 ENIAC(Electronic Numerical Integrator And Computer)5电子计算机理论的创立冯诺依曼(Von Neumann)确立了现代计算机的基本理论计算机由5个基本部件构成:输入器、输出器、运算器、存储器和控制器采用二进制进行运算引入存储器存储程序和数据,计算机自动高速的从存储器取出指令并执行指令这些基本原则至今仍然被现代计算机所采用,因此现代计算机一般被称为冯诺依曼结构计算机。6计算机的发展史第一代:电子管计算机时代(19461957年)第二代:晶体管计算机时代(19581964年)第三代:集成电路计算机时代(19641972年)第四代:大规
3、模集成电路计算机时代(1972年至今)目前又提出了所谓第五代计算机 特大规模集成电路ULSI(UltraLarge Scale Integration)超大规模集成电路SLSI(Super large Scale Integration)巨大规模集成电路GLSI(Great Large Scale Integration)7微型机的发展史计 算 机 发 展 到 第 四 代 出 现 了 微 处 理 器(CPU-Central Processing Unit),它的发展代表了微型机的发展史,大致可分为5代:第一代微处理器(19711973年)第二代微处理器(19741978年)第三代微处理器(19
4、781981年)第四代微处理器(19811992年)第五代微处理器(1992年至今)8计算机的分类1.巨型机(超级计算机)2.大中型机3.小型机4.微型机5.工作站计算机的发展将走向两个极端:巨型化 和 微型化Next9超级计算机问世1996年12月2日,美国英特尔公司为美能源部开发出世界上速度最快的超级计算机,每秒可运算1.4万亿次,在超级计算机发展史上首次突破每秒万亿次大关。该计算机开发耗资5500万美元。它将主要用来模拟核实验,并进行天气和自然灾害预报,基因研究、太空模拟实验等数据量非常巨大的研究工作。10世界之最蓝 色 基 因 Blue Gene/L是目前世界常最快的超级计算机,其峰值
5、速度能够达到360万亿次浮点计算。这台超级计算机内部拥有65536颗处理器,同样运行着Linux操作系统,并 在应用程 序 领 域 有 所 创 新。这是IBM公司、利弗莫尔实验室和美国能源部联合制作完成的超级计算机。它被广泛应用在生命科学、气象预测、天文观测、材料科学、数字电影特效等领域。11Return12微型计算机的分类1、单片微型计算机2、单板微型计算机3、多板微型计算机13微型机系统的组成完整的微机系统包括硬件和软件两部分组成:微机系统结构图14微机系统软件微型计算机的软件分为系统软件和用户软件(应用软件)。系统软件是指不需要用户干预的能生成、准备和执行其它程序所需的一组程序。用户软件
6、是各用户为解题或实现检测与实时控制等不同任务所编制的应用程序。程序设计分为3级:机器语言程序设计;汇编语言程序设计;高级语言程序设计。15微机系统硬件结构16总线的概念总线:所谓总线,是连接多个功能部件或多个装置的一组公共信号线按所传送信息的类型总线可分为:数据总线DB(Data Bus):传送计算机中的数据信息的信号线(双向,三态)地址总线AB(Address Bus):传送计算机中的地址信息的信号线控制总线CB(Control Bus):传送计算机中的控制信息的一组总线按在系统中的不同位置,总线还可分为:内部总线外部总线17CPU的基本结构控制器运算器18CPU的基本结构微型计算机中的运算
7、器和控制器合起来称为CPU,人们把CPU称为微处理器Microprocessor内部采用总线、累加器结构,管脚功能分时复用,广泛采用三态电路(TSL)等。引脚采用分时复用技术可节约成本,但系统的复杂性增加寄存器阵列RA(Register Array)通用寄存器R1R8 程序计数器PC(Program Counter)堆栈指针SP(Stack Pointer)CPU的基本结构运算器 累加器A(Accumulator)它有两个功能:运算前寄存第一操作数,是ALU的一个操作数的输入端;运算后存放ALU的运算结果。它既是操作数寄存器又是结果寄存器。暂存器TMP(Temporary)算术逻辑单元ALU(
8、Arithmetic Logic Unit)由并行加法器和其它逻辑电路(如移位电路、控制门等)组成。完成各种算术逻辑运算及其它一些操作。标志寄存器F(Flag)或称程序状态字(PSW)1920CPU的基本结构控制器 指令寄存器IR(Instruction Register)指令译码器ID(Instruction Decoder)定时控制电路(Timing and Control)数据和地址缓冲器简称总线缓冲器,是数据或地址信号的进出口。用来隔离微处理器内部总线和外部总线,并提供附加的驱动能力及信号整形功能。存储器概述存储器是用来存放程序和数据的。在机器内部,程序和数据都是用二进制代码的形式表示
9、。区分:存储单元地址与存储单元内容常用的存储容量单位位(bit):记作b字节(Byte):记作B1B=8b千字节(210字节):记作KB,1KB=1024B兆字节(220字节):记作MB,1MB=1024KBGB(230字节):1GB=1024MBTB(240字节):1TB=1024GB212200010203FEFF地址随机存取存储器译码器控制电路数据缓冲器DR存储器结构图存储体1位/4位/8位地址寄存器AR从 CPU来的R/W信号存储芯片地址输入引脚控制信号引脚数据输入输出引脚23存储器的操作过程3EHDB8位随机存取存储器地址译码器0011111000010203FEFF控制电路RD00
10、HAB 825HDB8位随机存取存储器地址译码器0010010100010203FEFF控制电路WR03HAB 8读操作写操作存储器的特点读操作完成后,原存储单元中的内容仍保持不变,它允许多次读出同一单元的内容。对存储单元执行写入操作将破坏该存储单元原存储的内容,即由新内容代替了原来存储的内容,原来储存内容将被清除。1.随机存取存储器RAM(Random Access Memory)。所谓“随机存取”即所有存储单元均可随时被访问,既可以读出也可以写入信息。2.只读存储器ROM(Read Only Memory),只能读出内容的存储器24第二节 微型计算机的数制及其转换2526主要内容1.进位计
11、数制与二进制2.进位计数制之间的转换3.信息在计算机中的编码进位计数制r ir进制计数制第i位的权a i 第i位的取值 a i=0,1,r-1进位计数制的实质是位置计数法,不同位置的权值不同。27rr进制计数的一般表达式A=an1 rn1+an2 rn2+LL+a0 r0+a1 r1+LL+am rmN 1 m28常用计数值及其标记方法常用的计数制有二、八、十和十六进制标记方法1:把数加上方括号,并在方括号右下角标注数制代号,如10116、1018、1012和10110分别表示十六进制、八进制、二进制和十进制标记方法2:用英文字母标记,加在被标记数的后面,分别用B(Binary)、Q(Octa
12、l)、D(Decimal)和H(Hexadecimal)大写字母表示二进制、八进制、十进制和十六进制数,其中,十进制数中的D可以省略。如77Q为八进制数、101B为二进制数为避免混淆,规定以字符打头的十六进制数前面必须加0。例如:0F789H,0FACEH。29十进制计数基数为10,逢十进位第i位权值为10i第i位取值范围为09例:123.4511022101310041015102二进制计数基数为2,逢二进位第i位权值为2 i第i位取值范围为0,1例:10110.11B=124+023+122+121+020+1 21+1221241 2212112112222.75D目前,绝大多数的计算机
13、采用二进制计数30八进制计数基数为8,逢八进位第i位权值为8 i第i位取值范围为07例:35.71Q381580 7 81 182 29.890625D31十六进制计数基数为16,逢十六进位第i位权值为16i第i位取值范围为09 AF例:70F.B1H7162 F160 B161 11621807.6914D十六进制数在本课程中常用32任意进制数转换为十进制任意进制数转换为十进制:按权值展开相加例如:10110.11B=124+023+122+121+020+1 21+1221241 2212112112222.75D35.71Q381580 7 81 182 29.890625D70F.B1
14、H7162 F160 B161 11621807.6914D3334十进制数转换为任意进制数十进制数转换为任意进制数(整数与小数分别处理)整数部分采用除基取余法设任意十进制正整数A,可表示为r进制:上式两边除以r,则有:举例P21P23A=an1 rn1+an2 rn2+LL+a1 r1+a0A/r=an1 rn2+an2 rn3+LL+a1+a0/r因0=a0=r-1且为整数,a 0 即为除法后的余数。因此,数A第一次除以基数r后的余数即为r进制数的最低位。重复上述过程直至商为0,可依次得到r进制数的系数35十进制数转换为任意进制数小数部分采用乘基取整法设任意十进制小数B,可表示为r进制小数
15、举例 P22P23B=b1 r1+b2 r2 LL+bm rm上式两边乘以r,则有:Br=b1+b2 r1 LL+bm rm+1可见,十进制小数乘以一次基数r后,乘积的整数部分即为r进制小数的最高位。重复上述运算,可依次得到r进制小数的各位系数。任何十进制整数都可以精确转换成一个r进制整数,但十进制小数却不一定可以精确转换成一个r进制小数,小数转换位数视精度要求确定36二进制与八进制数之间的转换二进制转换为八进制数可采用“三位合一位法”。“三位合一位法”法则是:从二进制数的小数点开始,向左或向右每三位,不是三位以0补足之(整数部分不足3位,左边补0;小数部分不足3位,右边补0),然后分别把每组
16、用八进制数码表示,并按序相连。举例八进制转换成二进制数这种转换方法是把八进制数的每位分别用三位二进制数码表示,然后把它们连成一体。举例37二进制与十六进制数之间的转换二进制数转换成十六进制数可采用“四位合一位法”。“四位合一位法”法则是:从二进制数的小数点开始,向左向右每四位,不是四位以0补足之(整数 部 分 不 足 4 位,左 边补 0;小 数部分不足4位,右边补0),然后分别把每组用十六进制数码表示,并按序相连。举例十六进制转换成二进制数这种转换方法是把十六进制数的每位分别用四位二进制数码表示,然后把它们连成一体。举例十进制数8421BCD码十进制数8421BCD码000005010110
17、0016011020010701113001181000401009100138BCD码BCD码用4位二进制数字编码表示为十进制数字即为BCD(Binary-Coded Decimal)码常用编码(8421BCD码)39例题:将二进制数1011.01B转换成相应的BCD码。首先,将二进制数转换成十进制数:1011.01(123)+(022)+(121)+(120)+(02-1)+(12-2)=11.25D然后,将十进制结果转换成BCD码11.25D0001 0001.0010 0101BCD注意:同一个十进制数所对应的二进制数和BCD码是完全不同的40BCD码压缩与非压缩BCD用一个字节存放两
18、位BCD码来表示十进制数,即为压缩BCD码用一个字节只存放一位BCD码来表示十进制数,即为非压缩BCD码例:压缩BCD码表示123非压缩BCD码表示1230010 00110000 00010000 00110000 00100000 000141计算机中的编码目前的计算机还无法直接识别人类社会使用的信息(如文字、声音、图像等)编码是信息的另一种表示方式,经过编码的信息适合计算机处理ASCII码ASCII 码,美 国 国 家 信 息 交 换 标 准 代 码(AmericanStandard Code for Information Interchange)编码对象:字符数据主要指数字、字母、通
19、用符号、控制符号等等,它们在计算机内部都被转换成能够识别的二进制编码形式用7位二进制数字编码的西文字符集编码规则表(参见ASCII码表)P26页例:030H,9 39H,A 41H,B 42H,a 61H,b 62H,$24H,CR 0DH,LF 0AH,SP 20H4243ASCII码字符串字符通常都是以ASCII码形式存放于内存。字符串是指一串连续的字符,占用存储器一片连续的空间。书写时用单引号括起来如:COMPUTER的ASCII码为43H4FH4DH50H55H54H45H52H43H4FH4DH50H55H54H45H52HASCII码字符串例:字符串 I am a boy!的ASC
20、II码为:49H 20H 61H 6DH 20H 61H 20H 62H 6FH 79H 21H4445汉字编码汉字编码字母、数字和各种常用符号682个一级常用汉字3755个,按汉语拼音顺序排列二级常用汉字3008个,按偏旁部首排列编码方法GB2312国标字符集构成一个二维平面,分成94行94列,行号称为区号,列号称为位号,分别用七位二进制数表示。每个汉字或字符在码表中都占用一个唯一的14位编码(7位区号再做,7位位号在右),用区号和位号作为汉字的编码就是汉字的区位码。46二进制数的算术运算加法运算法则0 001 00 11(向邻近高位有进位)(向邻近高位有进位)1 1101 1 111减法运
21、算法则000110101011(向邻近高位借1当2)47二进制数的算术运算乘法运算法则00010010111二进制乘法运算竖式与两个十进制数相乘类似。举例除法运算除法是乘法的逆运算。与十进制类似,也由减法、试商等操作逐步完成。举例48逻辑运算逻辑“与”运算逻辑“与”又称逻辑乘,常用“”算符表示。法则为:000 10010 111逻辑“或”运算逻辑“或”又称逻辑加,常用算符“”表示。法则为:000 100l1 111逻辑“非”运算逻辑“非”运算又称逻辑取反,常采用“”运算符表示。规则为:01 10逻辑“异或”运算逻辑“异或”又称为半加,是不考虑进位的加法,常采用“”运算符表示。逻辑“异或”的运算
22、规为:00110 10011第三节:机器数及其运算法则49主要内容1.有符号数的机器表示(原码、反码与补码)2.机器数与真值的转换3.补码运算规则及运算溢出4.数的定点与浮点表示难点:补码概念、补码运算溢出的判断方法5051无符号数与有符号数无符号数及其计算机表示无符号数是指正整数计算机字长的全部数位都可用来表示无符号数的数值大小设机器字长为n位,则其无符号数的数值范围是:02n-1有符号数及其计算机表示有符号数包括正数和负数计算机表示有符号数时,需要占用字长中的一位表示数符号数值表达范围与采用的码制有关52机器数与真值将数符编码表示的有符号数称为机器数。通常约定二进制数的最高位为符号位,“0
23、”表示正号,“1”表示负号用“+”、“-”加绝对值来表示数值大小,这种表示形式在计算机技术中称为真值53原码用二进制数字的最高位表示数的符号(以0表示正数,1表示负数),其余各位表示数值绝对值,称为该数的原码。(1)正数的原码设X Xn2Xn3X1X0(即n1位二进制正数),则:X原0Xn2Xn3X1X0(n二进制数,其中最高位为符号位)(2)负数的原码设 XXn2Xn3X1X0(即n1位二进制负数),则:X原1Xn2Xn3X1X0(n二进制数,其中最高位为符号位)(3)零的原码0原00000(n二进制数,其中最高位为符号位)0原10000(n二进制数,其中最高位为符号位)二进制数中原码的定义
24、:设机器字长为n位X原X2nlX0X2n12nlX0当X为正数时,X原 的值就是X自身;当X是负数时,X原的符号位用1表示,而数值部分不变。原码的数值表示范围:(2nl)X 2n15455反码反码表示法是用机器数的最高位代表符号,数值位是对负数值各位取反的表示方法。正数的反码表示:X反0Xn2Xn3X1X0负数的反码表示X反1Xn2Xn3X1X0零的反码表示有两种:0反00000000B(0)0反11111111B(0)n位二进制数中反码的定义式:X反X2n1X0X2n12nlX0当X为正数时,X反的值就是X自身;当X是负数时,X反的符号位用1表示,而数值部分按位取反即可。反码的数值表示范围:
25、(2nl)X 2n15657补码的定义在计算机中引入补码主要有下面两个原因:使符号位能和有效数值部分一起参加数值运算,从而简化运算规则,节省运行时间。使减法运算转化为加法运算(即XYX+Z,使其作用等价),从而进一步简化计算机中运算器的线路设计。模与同余计算机中字长总是一定的,能直接表示的最大数值有限,当运算结果超出其最大值时,就发生溢出,此时所产生的溢出量即为模(Module)自动舍弃溢出量的运算称为模运算。58模运算实例:钟表计时时钟走到12点,计时又从零开始,12即为溢出量,也就是说其模为12钟表对时与模运算:设标准时间是5点,但时钟却指在8点,为了校准至5点,可用倒拨3小时或顺拨9小时
26、,这两种拨法可记为:倒拨 835顺拨 8 912 55(mod 12)由此可见,在模为12的数字系统中8(3)8 9(mod 12)39(mod 12)59推而广之XY(XY)12(mod 12)(其中X0,Y0)若设 Y补12Y,则XY(XY)12X (12Y)X Y补(mod 12)减去Y可以用加上该数Y补 来代替,从而,减法运算也可转化为补码加法运算。需要注意的是,模为12的数字系统中,求Y补 仍需做减法。但在二进制数字系统中,求补码简便,容易由数字电路实现。补码的定义设n 位二进制数的最高位为符号位,数值部分为n 1位,此时模为2n,其补码的定义为:X(X0)X补2n X(X0)(X为
27、真值)由定义可以看出:当X为正数时,补码与原码相同都等于真值,不存在求补问题。当X为负数时,才存在求补问题,负数的补码为:2nX2n1 (2n1 X)2n|X|60补码的求取X为正数时,补码与原码相同都等于真值。X为负数时,负数的补码依然是一个负数,它是将其原码的符号位保持不变,而将其数值部分按位求反,再在最低位加1。X补X反 1举例简便的直接求补法从最低位起,到出现第一个1以前(包括第一个1)原码中的数字不变,以后逐位取反,但符号位不变。举例6162机器数与真值由原码求真值:将符号位变为“+”或“-”号,数值位不变由反码求真值:X 反 求反=X 原由补码求真值:X 补 求补=X 原补码的运算
28、规则计算机中的数据,没有特别申明的带符号数一律用补码表示,把符号也看成数的一部分共同参与运算,运算结果自然也是补码。数据在输入过程中即由输入程序转化为补码XY补X补Y补两数和的补码等于两数的补码之和XY补X(Y)补X补 Y补两数之差的补码,等于被减数的补码与减数的负数的补码之和,即减法可转换为补码加法完成。63Y的变补64求变补的方法已知Y补,如何求Y补?方法1:Y补 求补得到Y原将Y原 的符号位变反得到Y原对Y原求补得到 Y补。举例方法2:变补法:Y补 就是将Y补 的每一位(包括符号位)都求反,然后再加1。Y补变补Y补举例65实际上,计算机内部都是采用变补法计算,易于用电路实现。注意变补是一
29、种运算,本质上是求该补码相应真值的负数的补码,与求补码的概念不同,多数微处理器都有求变补指令。补码的运算规则举例P3566二进制数的表示范围对 有符号数,n位二进制数能表示的范围为-2n-1 2n-1-18位字长,补码的数值范围为-128+12716位字长,补码的数值范围为-32768+32767对 无符号数,n位二进制数能表示的范围为0 2n-18位字长,补码的数值范围为 0 25516位字长,补码的数值范围为 0 6553567溢出有限字长补码的数据表达范围是有限的,一个 n位二进制 补码的表示范围为 2n12n11所谓溢出是指当两个带符号位的二进制数进行补码运算时,若运算结果的绝对值超过
30、运算装置的容量,数值部分便会发生溢出,占据符号位的位置,从而引起计算出错。在溢出时,将造成运算错误。溢出的实质是运算结果超出有限字长计算机的数据表达范围运算溢出举例68溢出判别法双高位判别法引进两个附加符号:CS:它表征最高位(符号位)的进位情况,如有进位,CS1,否则,CS0;CP:它表征数值部分最高位的进位情况,如有进位,CP1,否则,CP0。双高位判别法为:V=CSCP两个正数相加,若数值部分之和大于2n1,则数值部分必有进位(CP 1),而符号位却无进位(CS0)。这种CSCP 的状态为“01”时的溢出称为“正溢出”;若和的绝对值小于2n1时,CS0,CP0,无溢出发生。两个负数相加,
31、若数值部分绝对值之和大于2n1,则数值部分补码之和必小于2n1,CP0,而符号位肯定有进位(CS1)。这种CSCP的状态为“10”时的溢出 称为“负溢出”;若和的绝对值小于2n1时,CS1,CP1,无溢出发生一个正数和一个负数相加,和肯定不溢出。此时,若和为正数,则CS1,CP1;若和为负数,则CS0,CP0。6970无符号数的运算所谓不带符号数,是指参加运算的操作数X和Y都为正数,且整个字长的各位都用来表示数值大小。8086CPU 中,两个不带符号数进行加法运算,仍然采用补码运算。如果加法运算之和不超过整个字长的表示范围(02n-1,n=8或16),则不溢出,否则产生溢出(进位),但并不表示
32、错,只是表明给定字长无法表示,向更高位有进位而已。结果的最高位存放在进位位中。71减法运算时,仍然采用补码加法进行计算。两个n位不带符号数进行减法运算,最高位有进位(此时称为借位),表明被减数小于减数。当差的绝对值小于2n-1时差值为负数(用补码表示),否则结果溢出,得到的n位差值不正确(此时,如果将进位位看作该数的符号位,结果仍正确)。因此,不带符号数的减法运算通常只用于判断两数的大小关系。72包括两个方面如何表示一个带小数点的数如何对带小数点的数进行运算对小数点的处理定点表示浮点表示73定点法所谓定点表示,就是小数点在数中的位置是固定的采用定点法表示数时,小数点在数中的位置事先规定好,机器
33、运行过程中一直保持不变。当小数点在最前面,则使用的都是小数;当小数点在最后面,则使用的都是整数;还可以规定小数点在数中的任何位置(实际运用时一般不采用)。当机器采用定点运算,由于小数点位置固定而统一,对位问题已不存在。定点计算的线路简单,但应用不方便。74浮点法所谓浮点表示,就是小数点在数中的位置是浮动的。如同十进制一样,任何一个二进制数可以表示成如下形式:NS2J其中J叫做阶码,S叫做尾数。在计算机中若把一个二进制数也分成阶码和尾数两部分来表示,叫做浮点表示法。数的浮点表示发源自十进制中的科学计数法浮点数的机器表示法在大多数计算机中都把尾数规定为纯小数,即小数点在尾数的最前面。对于字长较短的微机而言,可用多个连续字节构成浮点数。75阶符阶码J尾数符尾数S76浮点运算浮点数比定点数运算复杂,运算规则也不尽相同。同阶运算:阶码不变,尾数直接相加减。不同阶运算:阶码不同,则两数就不能直接相加、减,必须对阶(即对齐小数点)后,才能做尾数间的加、减运算。对阶原则:对阶时,低阶向高阶看齐,即把阶小的小数点左移。规格化(使0.5 S1)与计算精度(保留最多的有效数字)77第一章作业1-3 3999.7351-5(2)(4)1-7(6)(8)1-8(8)(10)1-9(2)(6)1-11(4)1-12(4)1-13(4)(8)1-14
限制150内