微机基础知识.ppt_第1页
微机基础知识.ppt_第2页
微机基础知识.ppt_第3页
微机基础知识.ppt_第4页
微机基础知识.ppt_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 1 章 微机基础知识,1.1 数制编码与数的表示,1.1.1数制与编码 微机只能识别二进制数。但是,由于书写、键入、读出二进制数极易出差错,而微机的字长又都是4的整数倍数,分别为4位、8位、16位、32位和64位等等,考虑到2416,因此在书写时使用十六进制数或八进制数,既方便又不易出错。此外,人们对十进制数最为熟悉,键入和输出微机的数,就经常使用十进制数表示。,表1-1 各种进制数间的关系,二进制数、八进制数、十进制数和十六进制数之间的对应关系如表1-1所示。,八进制数57.4Q各位的权从左至右依次为64、8、0.125。 1.1.1.3十六进制数 十六进制数(Hexadecimal)加

2、后缀H表示,如3AB.AH。一个十六进制数有16个不同的数码09和AF,逢16进1,借一当十六。 3AB.AH各位的权从左至右依次为256、16、1、0.0625,表1-2 二进制数各位的权,表1-3 十六进制数各位的权,1.1.1.4 数制转换 1) 各种进制数转换为十进制数 将各种进制数按权展开后相加可得相应的十进制数。例如: (10.1)2121020121(2.5)10 (10.1)16116101601161(16.0625)10 (10.1)8181080181(8.125)10 (10.1)5151050151(5.2)10,2) 二进制数、八进制数、十六进制数之间的相互转换 二

3、进制数转换为十六进制数(或八进制数),只需从小数点开始分别向左及向右,每4(或3)位为一组,每组用1位十六进制数(或八进制数)代替。整数部分最高位不足4(或3)位的一组在前面补0;小数部分最低位不足4(或3)位的一组在后面补0。例如: 11101011010.10001B可分组转换为0111 0101 1010.1000 1000B75A.88H; 11101011010.10001B可分组转换011 101 011 010.100 010B3 532.42Q。 十六进制数或八进制数转换为二进制数时,只需将每位的十六进制数或八进制数用相应二进制数代替即可。如3AB.AH0011 1010 10

4、11.1010B;57.4Q=101 111.100B。 十六进制数和八进制数之间进行转换,可通过先转换成二进制数进行。,3) 十进制数转换为二进制数、八进制数和十六进制数 十进制数转换为二进制数,要把十进制数的整数部分和小数部分分开处理。 整数部分使用“除2取余”。先得到的余数为低位,后得到的余数为高位,依次从低到高写出即为整数部分的二进制数。 小数部分使用“乘2取整法”。先得到的整数位为高位,后得到的为低位。依次从最高位到最低位写出,就是小数部分的二进制数。在绝大多数情况下,最后一次乘积的结果都不会为0。为此提出一定的精度要求,获得小数部分的二进制数近似表达式,称为机器0。,【例1-1】

5、将134.3D转换为二进制数,要求其误差不大于25。 整数部分 小数部分 算式 余数 算式 整数 134/267 b00 (最低位) 0.320.6 b10 (权为21,最高位) 67/233 b11 0.621.2 b21 33/216 b21 0.220.4 b30 16/28 b30 0.420.8 b40 8/24 b40 0.821.6 b51 (权为25,最低位) 4/22 b50 2/21 b60 1/20 b71 (最高位) 所以134.3D10000110.01001B。,【例1-2】 将134.3D转换为十六进制数,要求误差不大于162。 整数部分 小数部分 算式 余数 算

6、式 整数 134/168 H06 (最低位) 0.3164.8 H14 (最高位) 8/160 H18 (最高位) 0.81612.8 H212 (权为162,最低位) 所以134.3D86.4CH。 把十进制数转换为十六(八)进制数有两种方法:第一种,整数部分使用“辗转相除法”,小数部分使用“乘16(8)取整法”;第二种,先将十进制数转换为二进制数,再将二进制数转换为十六(八)进制数。,1.1.1.5 数制编码 1.BCD码 BCD码分为两种组合型和未组合型。组合型BCD码以4位二进制数的不同编码组合表示十进制数。常用的有8421BCD码。如0000表示十进制数0,0001表示十进制数1等。

7、 又如(2340)D =(0010 0011 0100 0000)BCD. 未组合型的BCD码用8为二进制数表示一位十进制数,其中高4位为0000.如表示十进制数3可表示为:0000 0011 2.ASCII 称为美国标准信息交换码,用8位二进制数表示一个字符,其中最高位为0(即用7为二进制数表示一个字符)。,1.1.2计算机中数的表示 1、真值与机器数 真值是日常生活中数的表示方法,由数符和尾数(绝对值)构成如x1=+0100100B,X2=-10110110B;机器数是指计算机中数的表示方法,把真值转换成机器数时注意:1)数的表示范围,由计算机的字长决定;2)符号数字化,并参与运算,其中正

8、号用0表示,负号用1表示。如X1和X2可分别表示为:X1=00100100B X2=110110110B;3)小数点按约定的方式标出。 2、有符号数和无符号数 有符号数的最高位为符号位,其余位表示数值,其中最高位为0表示整数,反之表示负数。 无符号数没有符号位,所以位数都表示数值。 3、数的原码、反码和补码 为了是硬件设计更为简单,计算机中的数据运算只有移位和加法两种操作方式,这就要求计算机中的数要用补码表示。,1) 原码 最高位表示符号位(0表示正数,1表示负数)、其余数字表示数值位的二进制数码,叫做机器数的原码。 76原 0 1001100B4CH 76原 1 1001100BCCH 0的

9、原码有两种表示: 0原 0 0000000B00H 0原 1 0000000B80H 虽然原码简单易懂,且与真值间转换方便,但因微机为简化结构只配备了加法器,使原码减法运算无法进行,为此引进了反码和补码。,2) 反码 正数的反码与原码相同。负数的反码为负数的原码除符号位外各位按位取反。 76反76原0 1001100B4CH 76反1 0110011B=B3H 0的反码有两种表示: 0反0原0 0000000B00H 0反1 1111111BFFH 【例1-3】 设X反EAH,求X的真值。 因X反11101010B,X原10010101B,则X0010101B21。 【例1-4】 设X为8位有

10、符号二进制数的真值,则X反X反FFH。,3) 补码 正数的补码与原码相同。负数的补码为其反码在最低位加1。 76补76原01001100B4CH 76补76反110110011B1B4H 0的补码仅有一种表示: 0补0原00000000B00H 0补0反111111111B11 00000000B00000000B00H 对于8位二进制数,最高位进位将“自然丢失”。,【例1-5】 10000000B是哪个数的补码? 此数因符号位为1,所以为负数,考虑到 126补126反110000001B110000010B 127补127反110000000B110000001B 由此定义10000000B

11、是128的补码,不是0的补码。 【例1-6】 X补X补1 00H00H,式中1 自然丢失,X为位有符号二进制数。 已知负数的补码求原码有两种方法: (1) 原路退回,将补码减1再除符号位外逐位求反; (2) 对补码求补,除符号位外逐位求反再加1。,【例1-7】 已知X补D2H,Y补2FH,求X、Y。 X的补码为1101 0010,看符号位,X0,除符号位外逐位求反得1010 1101,末位加1得原码1010 1110,X46。 Y的补码为0010 1111,看符号位,Y0,得Y47。 【例1-8】 已知X补D2H,Y补2FH,若X、Y改用32位二进制数表示,求X补,Y补。 只需进行符号位扩展,

12、X补FFFF FFD2H,Y补0000 002FH。,1.1.2 补码运算和溢出判断 1二进制数的数学运算 1) 加法运算 二进制数的加法规则为:000;011;101;1110。 【例1-9】 10010111B11010011B 1 01101010B(97H0D3H16AH),两个8位二进制数相加,结果是和为8位、进位位为1位。第9位表示“进位”位,既可以是0(无进位),也可以是1(有进位),存放在标志寄存器的进(借)位标志CF内。,2) 减法运算 二进制数的减法规则为:000;101;110;011,向高位有借位。向高位借1到本位的大小等于十进制数的2。 【例1-10】10101011

13、B00110101B01110110B(0ABH35H76H)。,【例1-11】 00110101B10101011B110001010B01110110B(35H0ABH76H)。 两个8位无符号二进制数相减,差依旧是8位,借位位为1位。若被减数大于或等于减数,则结果为正,且CF0无借位,如果不足8位,则需前面补0(补足8位);如果被减数小于减数,则需向第9位借位,CF1,结果为负,这时对8位数值位求补得到它的真值。 两个8位有符号二进制数相减,数值位只有7位,但是只要所有参加运算的数都以补码形式出现,就能把减法转化为加法,符号位也和数值位一样相加和进位,结果也是补码。,3) 乘法运算 二进

14、制数的乘法规则为:000;010;100;111。只有当两个1相乘时,积才为1,否则为0。 乘法操作过程从乘数的低位开始,用每一位分别去乘被乘数,每次相乘所得中间结果称为部分积,把部分积的最低有效位与相应乘数对齐后,同时相加得到乘积。两个8位二进制数相乘,结果为16位,如果乘积不足16位,则在乘积的前面补0(补足16位)。,【例1-12】 1010B乘以1101B的过程为 1010B1101B101000000101000101000010000010B 微机中用两种方法实现上例乘法:第一种用被乘数左移加部分积的方法作乘法,如果是两个n位二进制数相乘,需要2n个加法器,因为2n位都有可能在进行

15、加法操作;第二种用部分积右移加被乘数的方法作乘法,如果是两个n位二进制数相乘,需要n个加法器,因为只有n位有可能在进行加法操作,另外n位只需要寄存器或存储单元即可。,4) 除法运算 二进制数除法分3步进行。除法做完以后需要分别存放除数、余数和商数。 第一步,从被除数最高位开始,检查并确定大于除数的位数。找到这一位时,商上1,并把选定的被除数减除数,得余数;第二步,把被除数下一位移到余数上,将余数减除数,不够减时商上0,够减时商上1;第三步,重复第二步,直至被除数的所有的位下移完为止。 【例1-13】 111010除以110的结果为 1110101101001余100,2二进制数的逻辑运算 逻辑

16、变量的两个取值“0”和“1”表示逻辑分析的两种对立状态,不表示数学中0和1的数值大小。逻辑运算特征是按位进行,无高低位之分,无进(借)位。 1) 逻辑“与”运算 “与”运算的运算符号用“”、“”或“”表示,又称逻辑乘。其运算规则为:00=0;01=0;10=0;11=1。只有当两个逻辑变量都为1时,“与”运算结果才为1(参与运算的条件都位真是才有输出)。 【例1-14】 10001110B 01010011B0000 0010B,4) “异或”运算 “异或”运算的符号用“”表示。其运算规则为:000;011;101;110。相同两个逻辑变量“异或”,结果为0;不同的两个逻辑变量“异或”,结果为

17、1。 【例1-17】 10001110B01011101B1101 0011B,3十六进制数的运算 十六进制数运算的种类同于二进制数,并且所有运算都可以转化为二进制数进行。 加法运算时逢16进1。减法运算时从高位借1(相当于本位的十进制数16)。乘除法运算没有十进制数那种“乘法九九口诀表”,通常先化为二进制数比较方便。 【例1-18】 两数0B5F0H和0A427H相加的过程为: 0B5F0H0A427H15A17H 【例1-19】 数0B5F0H减去0A427H的过程为 0B5F0H0A427H11C9H,4补码加减运算规则 (1) 两数相减,可以转化为补码相加,结果也是补码:XYX补Y补。

18、 【例1-20】 设X64,Y10。直接相减有XY54。补码相加有X补0100 0000B,Y补1111 0110B,X补Y补 1 0011 0110B,最高位1 自然丢失,结果0011 0110B正是54的补码。补码的这种“128自然丢失”的运算称为“模28运算”。,【例1-21】 设X7,Y19,用补码求XY。 X补00000111B,Y补11101101B X补Y补 11110100BXY补 XY补符号位为1,所以,XY12。 把减法转化为加法的一般算式为 XY X(Y)X(Y)2n (mod 2n ) 则 XY补X(Y)补X补Y补,由于补码减法运算能够变为补码加法运算,因此计算机内的有

19、符号数都表示成补码的形式,并且把有符号数和无符号数统一对待。1、做加法时直接进行;2、做减法时将减数变成补码再和被减数相加来完成。3、有符号数以补码形式参加运算时,具有和无符号数相同的进位规律。4、二进制数乘法运算可分解成加法和移位;5、除法运算可分解成减法和移位。当使用补码将减法转换为加法时,二进制数的数学运算只用加法和移位两种基本操作便能完成。,(2) 两数补码之和等于两数和的补码: X补Y补 2nX2nY2n(XY)XY补 【例1-24】 设X64,Y8,用补码求XY。 因X补01000000B,Y补00001000B,则X补Y补为,(3) 两数补码之差等于两数差的补码: X补Y补 2n

20、X(2nY)XY 2n XY补X补Y补,5溢出 两个n位有符号二进制数补码相加,既存在进位问题也存在溢出问题。进位和溢出是两个不同的概念。进位是逢2进1。所谓溢出是指补码运算结果超出了二进制数的表示范围(2n12n11),运算发生了错误。 有溢出时,标志寄存器的溢出标志位OF1;无溢出时OF0。,两个补码相加时,设Ca是数值位向符号位的进位,Cy是符号位向进位位CF的进位。借助两个进位Ca和Cy,能正确判断溢出是否产生。 两个补码相加可以归纳为三种情况:两个正数相加;两个负数相加;一个正数一个负数相加。只有在前两种情况下才有可能产生溢出,下面举了4个例子分别讨论。对于“一个正数一个负数相加”这

21、种加法类型,肯定不会发生溢出。,【例1-25】 两个正数相加,结果为正数,无溢出。 设X补04H,Y补06H,求XY。此时X4,Y6,正确值为10。,运算结果正确,所以无溢出,溢出标志位OF0。进位特征是Ca0,Cy0。,【例1-26】 两个正数相加,结果为负数,这时发生的溢出叫“正”溢出。 设X补40H,Y补41H, 求XY。此时X64,Y65,正确值为129。,运算结果错误,发生溢出,OF1,原因是129127。进位特征是Ca1,Cy0。,【例1-27】 两个负数相加,结果为正数,这时发生的溢出叫“负”溢出。 设X补86H,Y补0F0H,求XY。此时X122,Y16,正确值为138。,运算

22、结果错误,发生溢出,OF1,原因是138128。进位特征是Ca0,Cy1。,【例1-28】 两个负数相加,结果为负数,无溢出。 设X补ABH,Y补FFH,求XY。此时X85,Y1,正确值是86。,运算结果正确,无溢出,OF0。进位特征是Ca1,Cy1。,综合上述4种情况,可以得到判断补码运算是否有溢出的方法有3种: (1) 溢出标志法:检查溢出标志位OF。若OF0,则无溢出;若OF1,则有溢出。指令系统中有两条条件转移指令就是依据OF的值确定程序走向的。 (2) 符号法:看运算前后的符号位。两个正数相加得负数,或两个负数相加得正数,必有溢出;两个正数相加得正数,或两个负数相加得负数,或一个正数

23、一个负数相加,必无溢出。这种方法常用于编制程序时快速判断。例如47H和60H相加,使用心算就可判断必有正溢出。,(3) 双进位法:看Ca、Cy的值。若CaCy,则无溢出;若CaCy,则有溢出。微机中常用“Ca异或Cy”线路,判断有无溢出。 溢出问题限制了数的运算和使用,尤其是在处理一个大数时,不能依靠增加二进制数的位数来扩大数的表示范围,只能改用十进制数的BCD码形式存放和运算。 两个n位无符号二进制数相加,如果和大于或者等于2n,超出了n位二进制无符号数的最大表示范围,那么这时要向n1位进位。例如8位二进制无符号数10010010B(146D)和10000001B(129D)相加,结果为1

24、00010011B(275D),此时向第9位有进位。 在无符号数运算里面,只有进位问题而无溢出问题。,1.1.3 定点、浮点表示 1定点表示 任意一个二进制数N都可以表示成N2PS,式中S为数N的尾数,P为数N的阶码。S集合了数N的全部有效数字,P确定了小数点的位置。例如32可写成20100000,这时P0,S为纯整数。也可写成260.10000,这时P6,S为纯小数。用定点法表示二进制数时,必须事先约定阶码P的值固定不变,这样剩下来的事就是如何表示尾数,同样规定最高位为符号位,其余是数值位。字长为n的定点纯整数表示范围为(2n11)(2n11);字长为n的定点纯小数表示范围为(12(n1)(

25、12(n1)。,【例1-29】 尾数0.1010111和0.1010111在定点计算机中表示为 0.10101111 1010111 0.1010111 0 1010111 符号位数值位 符号位 数值位,2浮点表示 使用浮点表示时,除了表示尾数外,还要将阶码表示出来:,【例1-30】 二进制数1011.101B2100B0.1011101B11.625的浮点表示:,3定点表示与浮点表示的比较 (1) 浮点数的表示范围比定点表示的大。 以32位二进制数为例,使用定点表示时,最高位为符号位,其余31位为数值位,因此所表示数的范围为(2311)(2311)。使用浮点表示时,设阶码P占8位(有1位符号

26、位,7位数值位)、尾数S 占24位(有1位符号位,23位数值位),因此所表示数的范围为2127(2231)2127(2231)。在计算机字长相同的时候,浮点表示比定点表示的范围大得多。如果阶码P的位数多一些,则所能表示数的范围更大一些,但要注意尾数S的位数少了,有效数字相应少了,计算结果精度要下降。应当按照实际情况分配阶码P和尾数S的位数。,(2) 浮点运算必须对齐阶码,即小数点对齐,才能加减。定点运算无对阶问题。 【例1-31】 设X2100B1010100B,Y2011B0100100B2100B0010010B,则,(4) 浮点计算机成本高,维护工作量大。 浮点计算机同时具有阶码运算和尾

27、数运算电路,因此运算器和相应控制器电路复杂一些,成本也比定点计算机高一些,日常维护工作量也大一些。 当代微机多使用定点运算,也使用浮点运算,这样既满足常用要求,又能降低成本;大型机、巨型机以浮点运算为主,这样可以增强功能,满足不同层次大型计算的需要。,1.3 微型计算机系统的基本组成,图1-3 微型计算机系统的基本组成,1.4.1 常用术语 位(Bit):二进制位,只有0、1两种状态,是信息存储的最小数据单位。若干个二进制位可以表示各种数据和字符。 字节(Byte):简写为B,相邻8位二进制数。1B8位,或说1个字节的长度为8位。存储器1个存储单元通常为1B。 字(Word):简写为W,微机内

28、进行数据处理的基本单位。一般情况下,相邻16位二进制数为1个字。1W2B16位。1个字可分成低字节和高字节。 双字(Double Word):简写为DW,由相邻32位二进制数组成。1DW2W4B32位。双字可分成低位字和高位字。,四字(Quad Word):简写为QW,由相邻64位二进制数组成。1QW2DW4W8B64位。四字可分成低位双字和高位双字。 双四字(Double Quad Word):简写为DQW,由相邻128位二进制数组成。1DQW2QW4DW8W16B128位。四字可分成低位四字和高位四字。双四字用于具有SSE扩展的Pentium 及以上CPU结构。 字长:基本数据单元所包含的

29、二进制位数,通常和微机内部寄存器、运算器、数据总线宽度相一致。8位机、16位机和32位机就是指字长分别为8位、16位和32位的机器。,位串(Bit String):若干二进制数位的集合。一个位串最短是1位,最长包含232位。从“位”到“双四字”都可以看作是位串的一种。位串存放在存储器中,1个字节位串占1个存储单元,在4GB存储空间内地址编号从X2281到X228,其中X是第07位所在字节的地址,如图1-4所示。1个字位串占2个存储单元。依此类推,1个双四字位串占16个存储单元。,图1-4 位串和位偏移量,位串中每一位都有自己的位地址,位地址采用逻辑地址表示法:位基址加偏移量。位基址通常为0,位

30、偏移量就成为位地址,用32位有符号二进制数表示,取值范围为231(2311)。如果知道一个位的位偏移量,就可以求得该位所在字节位串的地址。例如位偏移量为122的位,它所处字节位串的地址为X(122/8的商)X16X10H。位偏移量除以8的余数就是被测位在该字节中的位数。122/8的余数是6,该位位于X10H的第6位。又如位偏移量为122的位,所处字节位串地址为X(122/8的商)X15X0FH。122/8的余数是2,该位位于X0FH的第2位。,图1-5 字符串,字符串(Character String):字节、字和双字的相邻序列,分别有字节串、字串和双字串,如图1-5所示。使用专用的字符串操作

31、指令(可加重复前缀)完成传送、比较和查询。位于最低位的串地址就是该字符串的起始地址。,1.3.2 微机的三总线结构 1微机基本结构,图1-6 微机基本结构,存储器的功能是存放各种程序代码、数据代码和运算结果。为求解各类问题编制的程序、参加运算的各种数据,以及由此引出的地址信号、数据信号、控制和状态信号,都是以二进制数的形式存放在存储器中的。 I/O接口电路又叫适配器,是I/O设备连接微机的惟一通道,其功能是转换信息格式、传送CPU的控制命令和反映I/O设备自身的状态。I/O设备分为输入设备和输出设备。,输入设备的功能是将外界的各种信息,如图形、图像、声音、文字、数字等,转换成微机所能接收和识别

32、的二进制信息形式。输出设备的功能是将微机对二进制信息的处理结果转换成人们所能接收和识别的形式。由于I/O设备的信息格式明显不同于微机,并且大多数都有机械动作,数据传送速度远低于微机,输入/输出时都需要对数据进行缓冲存储处理,因此,I/O设备不能直接和微机相连,必须通过I/O接口电路与CPU交换信息。 I/O设备种类繁多,工作原理、信息格式各不相同,需要不同的接口电路。目前已生产了一些典型的I/O接口集成芯片,每种接口芯片只适配一种或信息格式相近的两三种I/O设备。这些接口芯片内部结构的复杂程度和价格不亚于CPU芯片。,I/O接口电路和CPU之间的数据传送,是依靠I/O端口实现的。对CPU而言,

33、每一个I/O端口和每一个存储单元完全一样,有自己的端口地址和端口内容。一个接口芯片可以有一个或几个端口,或者几个接口芯片的某些功能共用一个端口。为了满足传送数据信息和控制/状态信息的不同需要,I/O端口被划分成数据口和控制/状态口两种不同类型的端口,统一进行编址。要想正确使用不同用途的接口芯片,必须首先知道芯片有几个端口,是数据口还是控制口,端口地址各是多少,才能正确编制初始化程序和工作程序。,2系统总线 系统总线是连接各逻辑部件且能传送信息的公共通道。每一种类型的总线,都有自己的宽度。总线上能够并行传送的二进制位数,称为总线的宽度。系统总线按功能划分为:地址总线AB(Address Bus)

34、、数据总线DB(Data Bus)和控制总线CB(Control Bus)。图1-7为系统总线的示意图。,图1-7 系统总线,地址总线是传送地址信息用于选中某一存储单元和某一I/O端口的一组系统总线。地址信息流向单方向,由CPU指向存储器或I/O接口。 CPU通过地址总线寻找存储单元或I/O端口地址的操作,称为寻址。地址总线的宽度决定了微机所能寻址的最大存储空间和最大I/O端口地址空间。8086/8088的地址总线宽度为20位,用A19A0表示,可寻址的存储单元数为2201M;对I/O端口地址的寻址使用地址总线的低8位A7A0或低16位A15A0进行,可寻址的I/O端口数为256个或64K个。

35、,数据总线是传送数据信息的一组系统总线。数据信息流向双方向,既可以从CPU流向存储器或I/O端口,也可以从存储器或I/O端口流向CPU。此外,在微机处于DMA(直接存储器存取)工作方式下,存储器和I/O接口还能相互传送数据。因此,数据总线为双向总线。数据总线的宽度成为按字长划分的计算机名称来源之一。当代Pentium CPU的数据总线宽度为64位二进制数,以Pentium为核心构成的计算机就被称为64位机。,控制总线是传送控制命令和状态信息的一组系统总线。控制命令是CPU发布的控制存储器或I/O端口完成某一特定操作的命令信息,如读信号、写信号、地址锁存允许信号ALE等。状态信息是存储器或I/O

36、端口向CPU发出的反映自身状态或请求的信号,如忙信号、中断申请信号等。控制总线,就单根线来讲,信息流向是单方向的,有的从CPU指向存储器或I/O端口,有的从存储器或I/O端口指向CPU,因此,从成组来讲,可以看成是双向的。,表1-10 微处理器的地址与数据总线宽度,3微机的分类 1) 按数据总线宽度划分 1位机:用于专门设备中; 4位机:intel4004用于专门设备中; 8位机:Z80机、8080、6800、Apple 6502、MCS51系列单片机; 准16位机:PC/XT 8086/8088机、8098单片机; 16位机:80286机、MC68000机; 32位机:80386/80486

37、机; 64位机:Pentium系列机。,2) 按所配存储器容量划分 单片机:单片机是一种将微处理器、48 KB ROM(有的单片机芯片没有)、定时器/计数器、I/O接口、256BRAM集成在一个芯片上的计算机。由于单片机的地址/数据总线引脚合用、分时操作,因此在扩展片外程序存储器时必须外接地址锁存器。一个典型的单片机最小系统由8031单片机、74LS373地址锁存器、EPROM 2716片外扩展RAM构成。 单板机:单板机的基本组成:微处理器使用Z80,内部存储器10KB左右,另外还扩充有2716组成的6 KB ROM、2114组成的48 KB RAM,并行接口芯片PIO,定时器/计数器芯片C

38、TC。因单板机内部存储器容量小,所以不能使用汇编语言,只能使用机器语言进行操作。典型机型为TP801机。单片机和单板机的结合称为单片单板机。,通用机:通用机是通用微机的简称,又称为个人计算机或PC(Personal Computer)机。内存至少在64KB以上, 有编译程序, 能使用高级语言。如果要求使用汉字,内存至少在512KB以上。当代Pentium机允许的最大物理存储空间已达到64GB。一个典型的当代微机配置如下:Intel Pentium 4 2.4 GB CPU,128MB DDR内存条,40GB高速硬盘,DVD-ROM,24个USB 2.0接口,10/100M以太网卡,56K Mo

39、dem,17纯平显示器、显卡、主板等。,通用机和单片机都有各自的生存条件和生存环境,构成了当代微机的两大发展主流。通用机采用了一系列当代微机新技术,如流水线作业技术、高速缓冲存储器技术和虚拟存储器技术等,提高了CPU的工作速度,用于人工智能、数据处理、上网、智力测验等,能极大满足人们的心理需要。但是另一方面,无限制地追求CPU的高速度在微控制领域毫无意义,单片机没有必要采用这些新技术,8位机用于智能仪表、自动检测、机器人等,功能已经强大到足够满足各种控制目的。,1.3.3 微处理器的基本结构,图1-8 微处理器的基本结构,运算器又称算术逻辑单元ALU,功能是执行算术、逻辑和移位操作,运算结果送

40、CPU芯片内部寄存器或经数据总线送存储单元,运算结果的一些特殊位送标志寄存器。 控制器由指令寄存器IR(Instruction Register)、指令译码和时序控制电路组成。指令寄存器IR用于暂时存放从存储器中取出的指令代码;指令译码电路的功能是把指令代码翻译成相关的控制和定时信号,确定执行什么操作,使用哪种寻址方式,如何根据寻址方式取得操作数等等;时序控制电路的功能是发出一系列的控制命令和时序命令,开启相关的组合逻辑门电路,触发相关的时序逻辑电路,指挥微机各逻辑部件统一协调工作,完成指令的操作。要想顺利执行指令,必须要准确地找到操作数或是操作数的地址。操作数可能出现在4个地方:直接在指令中

41、给出,在CPU内部寄存器中,在微机存储器中或在I/O端口中。,内部寄存器阵列含有累加器A、标志寄存器FLAGS、程序计数器PC、堆栈指示器SP、地址寄存器AR、数据寄存器DR等。 累加器A(Accumulator)用于存放参加运算的一个操作数和运算结果。累加器A使用最频繁,算术逻辑运算通常以累加器A为核心进行。 标志寄存器FLAGS提供两类标志:运算标志和控制标志。运算标志记录运算结果的一些特征,常见的有6种:有无进(借)位、有无半进(借)位、有无溢出、结果是否为“0”、“1”的个数是奇是偶、符号是正还是负。控制标志记录程序的走向,常见的有3种:是否需要跟踪、是否允许中断、串操作指令是按增址方

42、向还是按减址方向执行。,程序计数器PC(Program Counter)又名指令指针IP(Instruction Pointer),功能是存放下一条要执行指令的地址。程序存放在存储器的代码段中,当CPU从存储器取出1个指令字节时,IP的值将自动加1。 SP用于指示堆栈栈顶的地址,AR、DR分别用于暂存和缓冲地址、数据信息。,1.4 存储器的基本结构,存储器是微机的存储记忆元件。为方便使用,存储器分为一个个存储单元。每个存储单元有两个属性:一个是为便于存取而建立的地址编码;一个是它存放的内容。存储单元的地址和内容虽然都是二进制代码,但却是两个完全不同的概念。 图1-9给出了256 B存储器的结构

43、。该存储器由256个单元组成,每单元字长8位。256个单元地址编号从00H到FFH(从0到255)。存储器和CPU之间用三组总线连接,其中8256地址译码器接收CPU AB送来的地址码。当地址线上出现8位地址信息时,经译码器选中相应一个单元,该单元的数据线与DB相连。在控制总线的读/写信号控制下,数据经由DB完成存储单元内容的存取操作。,图1-9 存储器的基本结构,1.4.1 存储单元的地址和内容 存储单元的地址是存储单元的顺序号。地址与存储单元一一对应,是存储单元的惟一标志。要想访问存储单元,必须首先给出地址。几乎所有微机的存储器都是按字节编址的,存储器的每个存储单元固定存放1个字节,8位二

44、进制数。CPU从存储器中取出信息(简称“读”),或往存储器中存放信息(简称“写”),称为访问存储器。访问过程为:地址信息经译码器译码后选中某一存储单元,再根据控制总线送来的“读”、“写”命令将数据信息经数据总线完成“读”、“写”。,1) 读出操作 存储器读出操作示意图如图1-10所示。首先按照指令由CPU的地址寄存器AR给出地址号78H,然后地址总线上出现地址信号A7A078H送到译码器,译码后选中78H单元,再由CPU的控制总线发出“读”控制命令。存储器在接收“读”命令后,78H 单元的内容3AH出现在数据总线DB上,并进入CPU的数据寄存器DR。 存储器的读出是非破坏性的。数据从存储单元读

45、出后,存储单元的内容应保持不变。如果存储器由双极型或CMOS双稳态触发器等构成,则会自动保持不变。如果由动态电容构成,则需要及时补充电荷,定时给那些该充电的电容充电,保证二进制信息不发生变化。,图1-10 存储器读出操作示意图,2) 写入操作 存储器写入操作示意图如图1-11所示。首先按照指令由CPU的地址寄存器AR 给出地址号B3H,然后地址总线上出现地址信号A7A0B3H送到译码器,译码后选中B3H单元。接着数据寄存器DR的内容15H 进入数据总线DB。随后CPU发出“写”命令,DB上的数据15H写入B3H。数据写入后,存储单元原先的内容被改写。,图1-11 存储器写入操作示意图,1.5.

46、2 程序和数据在存储器中存放的方式 图1-12画出了1MB存储器的存储图。存储单元的地址编号从0开始,按顺序加1,一直编到最后1个单元1M11 048 575,表示该存储器共有1 048 576个存储单元,每个存储单元存放1个字节的二进制数。实际的编码地址不使用十进制数,而使用十六进制数,从00000H编到FFFFFH。,图1-12 存储单元的地址和内容,存储单元的内容就是该单元存放的数据信息。图1-12中00002H单元的内容为0FH,可以表示成(00002H)0FH;00003H单元的内容为0FCH,可以表示成(00003H)0FCH。其中00002H、00003H表示存储单元的地址,加括

47、号后表示该单元的数据内容。 程序和数据以代码的形式在内存中以字节为单位进行存储,不足8位的数据要在最高位加0补足8位。如ASCII码字符X(7位代码101 1000)存入010AAH单元,数据信息补足8位,成为0101 1000B,记为X=(010AAH)58H。,图1-13 数据在内存中的存放存储图,多字节数据在内存中存放时,需要相邻存储单元,不能分开。1个“字”占相邻2个存储单元,1个“双字”占相邻4个存储单元,1个“四字”占相邻8个存储单元。多字节数据存放规则是高字节进入高地址;低字节进入低地址,且低字节的地址是多字节数据的访问地址。 字节、字、双字和四字在内存中的存放存储示意图如图1-

48、13所示。其中字节56H的存放地址为70258H单元,记为 (70258H)56H 字0AB56H的存放地址为70258H和70259H两个单元,记为 (70258H)0AB56H 寻址时只需指出低字节地址。,【例1-42】 存储图如图1-13所示,试问70258H单元存放的内容是多少? 本题无法求解,因已知条件不够,必须指明存放的数据类型才能得到答案。 如果存放的是字节,则为56H,记为 (70258H)56H 如果存放的是字,则为0AB56H,记为 (70258H)0AB56H 如果存放的是双字,则为0F19E AB56H,记为 (70258H)0F19E AB56H 如果存放的是四字,则

49、为8043 B20C F19E AB56H,记为 (70258H)8043 B20C F19E AB56H,【例1-43】 将代码0A26H、0A263H、A、B、AB依次放入内存,首地址为0A263H,存储图如图1-14所示。,图1-14 代码存放,1.5.3 存储器主要性能指标 存储器主要性能指标有存储容量、存取速度和性能价格比。 存储容量定义为存储器的存储单元数与每个存储单元位数的乘积: 存储容量存储单元数每单元存储位数 微机内部的存储器(简称内存)通常使用厂家生产的存储器芯片构成。知道了存储芯片的存储容量和内存和存储容量,就可以计算出组成内部存储器所需要的芯片片数。例如使用Intel公

50、司生产的存储芯片27256(32 K8位)组成128 K16位的内部存储器,则,寻址存储器的地址线根数为n,存储器的数据线根数为m,则该存储器的容量为2nm。例如EPROM 27256(32 K8位)存储器芯片,有15根地址线A14A0,8根数据线D7D0,则该芯片存储容量为2158 bit(位),即32 KB。反之,从存储容量也能推算出存储器有多少根地址线和数据线。 存取速度用一次存储器访问所需的时间来表示。采用MOS工艺的存储器,存取时间约为几十几百ns;双极型RAM最快可达10 ns以下。无论哪种主存储器,存取速度均低于CPU,为此,当代微机存储器都采用多层次结构。,1.5 微机工作原理,微机按照程序存储式原理工作,只能被动执行人们事先编制好的程序。程序是指令有规律的集合,而指令(Instruction)则是人们规定微机完成一项操作的命令。 表1-11列出了一个把两数4 和6 相加的程序,由3条指令组成。每条指令的二进制代码包含操作码和操作数,操作码指出完成什么操作,操作数是参加运算的数。假设把程序放到容量为256 B的存储器中,从20H单元开始存放,需要5个单元,如图1-15所示。,表1-11 指令的操作码和操作数,图1-15 取指令示意图,从存储器中取出指令的操作码和操作数(以第1条指令第1字节为例)过程如下: (1) CPU中的PC(或IP)存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论