微型计算机原理及应用(第四版)总目录第1章计算机基础知识第2章微型计算机的基本组成电路第3章微型计算机的基本工作原理第4章16位微处理器第5章86系列微型计算机的指令系统第6章微型计算机的程序设计第7章微型计算机汇编语言及汇编程序第8章输入/输出接口第9章中断控制器、计数/定时控制器及DMA控制器第10章A/D及D/A转换器第11章32位微处理器第12章PC总线及整机结构第13章MCS-51单片计算机第14章微型计算机在自动控制系统中的应用第1章计算机基础知识1.1数制1.2逻辑电路1.3布尔代数1.4二进制数的运算及其加法电路习题1.1数制数制:是人们利用符号来记数的科学方法。通俗地说就是数的构成方法。在计算机的设计与使用上常用的数制则为十进制、二进制、八进制和十六进制。1.1.1数制的基与权概念:1、数制的基(进位基数):每一数位所能使用的数码的个数称为数制的基;2、数制的权:数制每一数位取值为1时所具有的值的大小,称为权。十进制(decimalsystem):进位基数为“10”,即它所使用的数码为0,1,2,3,4,5,6,7,8,9,共有10个。代表字母:D二进制(binarysystem):进位基数为为“2”,即其使用的数码为0,1,共两个。二进制各位的权是以2为底的幂,代表字母:B八进制(octavesystem):进位基数为“8”,即其数码共有8个:0,1,2,3,4,5,6,7。代表字母:O十六进制(hexadecimalsystem):进位基数为“16”,即其数码共有16个:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。代表字母:H在微型计算机中这些数制都是经常用到的,但在本书后面的内容中,二进制和十六进制更为常用,希望初学者注意。1.1.2为什么要用二进制?电路通常只有两种稳态:导通与阻塞、饱和与截止、高电位与低电位等。具有两个稳态的电路称为二值电路。因此,用二值电路来计数时,只能代表两个数码:0和1。如以1代表高电位,则0代表低电位,所以,采用二进制,可以利用电路进行计数工作。而用电路来组成计算机,则有运算迅速、电路简便、成本低廉等优点。1.1.3为什么要用十六进制?用十六进制既可简化书写,又便于记忆。如下列一些等值的数:1000(2)=8(16)(即8(10))1111(2)=F(16)(即15(10))110000(2)=30(16)(即48(10))1.1.4数制的转换方法1.十进制数转换成二进制数的方法整数部分:采用基数连除的方法;小数部分:采用基数连乘的方法;2.二进制数转换成十进制数的方法由二进制数各位的权乘以各位的数(0或1),展开成多项式的形式,再加起来就得到十进制数。二进制数转换成八及十六进制数的方法转换成八进制数:以小数点为基准分组,小数点左边按照从右到左的顺序每三位一组并转换成相应的八进制数,最高位不足三位加零补齐;小数点右边按照从左到右的顺序每三位一组并转换成相应的八进制数,最低位不足三位加零补齐。转换成十六进制数:不同之处分组的位数为四位一组。八及十六进制数转换成二进制数的方法两点注意事项:(1)一个二进制数可以准确地转换为十进制数,而一个带小数的十进制数不一定能够准确地用二进制数来表示。(2)带小数的十进制数在转换为二进制数时,以小数点为界,整数和小数要分别转换。1.2逻辑电路逻辑电路由其3种基本门电路(或称判定元素)组成。图1.1是基本门电路的名称、符号及表达式。图1.1在这3个基本门电路的基础上,还可发展成如图1.2那样更复杂的逻辑电路。其中,最后一个叫作缓冲器(buffer),为两个非门串联以达到改变输出电阻的目的。如果A点左边电路的输出电阻很高,则经过这个缓冲器之后,在Y点处的输出电阻就可以变得低许多倍,这样就能够提高带负载的能力。图1.2复合逻辑门电路1.3布尔代数布尔代数也称为开关代数或逻辑代数,和一般代数一样,可以写成下面的表达式:Y=f(A,B,C,D)1、布尔代数和普通代数的区别:2、布尔代数的三种基本逻辑运算:”与”、“或”、“非”;几种复合逻辑运算:“与非”、“或非”、“异或”、“同或”、作用:利用摩根定理,可以解决与门、或门互换的问题。二变量的摩根定理为:A+B=A·BA·B=A+B推广到多变量:A+B+C+…=A·B·C…1.3.1布尔代数的基本运算规律1.3.2摩根定理A·B·C…=A+B+C+…至于多变量的摩根定理,用相同的方法同样可以得到证明。这个定理可以用一句话来记忆:头上切一刀,下面变个号。【例1.10】A·B=A+B=A+BA+B+C=A·B·C1.3.3布尔代数的几种表示方法:1、真值表2、逻辑式3、逻辑图4、卡若图1.4二进制数的加法电路众所周知,算术的基本运算共有4种:加、减、乘和除。在微型计算机中常常只有加法电路,这是为了使硬件结构简单而成本较低。不过,只要有了加法电路,也能完成算术的4种基本运算。1.4.1二进制数的相加(略过)1.4.2半加器电路1.4.3全加器电路图1.61.4.4半加器及全加器符号图1.6(a)为半加器符号,图1.6(b)为全加器符号。1.4.5二进制数的加法电路:串行进位加法器、超前进位加法器设A=1010=10(10)B=1011=11(10)四位的加法电路:图1.7A与B相加,写成竖式算法如下:A:1010B:1011(+S:10101即其相加结果为S=10101。从加法电路,可看到同样的结果:S=C4S3S2S1S0=10101单击此处编辑母版标题样式•单击此处编辑母版副标题样式1.4.6二进制数的减法运算1、计算机中的减法如何实现?例:A-B=A+(-B)注意:如有进位的话,则舍去进位。2、数的分类?真值:一般书写时表示的数。机器数:无符号数和有符号数3、概念:原码、反码、补码注:此处的上述概念都是针对有符号数而言的。4、无符号数的补码求法。各数位依次取反再加1即可。5、有符号数的补码求法。正数的补码:符号位为0,其余位为其数值。负数的补码:符号位为1,其余位为反码+1。5、举例说明如何运用补码将二进制的减法变成加法运算。例:1、求8-48=1000B4=0100B4的补码为:1100于是8-4=1000B+1100B=10100最前面的1为进位,舍去=0100B=4单击此处编辑母版标题样式•单击此处编辑母版副标题样式例:2、求0FH-0AH0FH=00001111B0AH=00001010B0AH=00001010B其补码为=11110110B于是0FH-0AH=00001111B+11110110B=100000101B最前面的1为进位,舍去=00000101B=5补码的概念:并非只有二进制数才有。在十进制、十六进制等各种进制中都是存在的。如在十进制中原码为6的补码是4,原码为64的补码是36,原码为642的补码是358等。由此可见:原码+补码的结果如下:6+4=1064+36=100642+358=1000即原码与补码互相补充而能得到一个进位数:1位数的原码加补码得到的是2位数10;2位数的原码加补码得到的是3位数100;3位数的原码加补码得到的是4位数1000。1.7可控的反相器及加减法电路四位的加法器控制基理:0⊕A=A1⊕A=ASUB为控制端。-可控的加减法电路习题1.1将下列各二进制数转换为十进制数。(1)1101(2)(2)11010(2)(3)110100(2)(4)10101001(2)1.2将1.1题的各二进制数转换为十六进制数。1.3简述3个门电路的基本元素在电路中对电平高低的作用。1.4布尔代数有哪两个特点?1.5布尔代数的“或运算”结果可用哪两句话来归纳?其“与运算”结果又可归纳成哪两句话?1.6什么叫原码、反码及补码?1.7为什么需要半加器和全加器,它们之间的主要区别是什么?1.8用补码法写出下列减法的步骤:(1)1111(2)-1010(2)=?(2)=?(10)(2)1100(2)-0011(2)=?(2)=?(10)1.9做出101011(2)+011110(2)的门电路图并求其相加的结果。1.10做出第1.9题中两数相减的门电路图并求其相减的结果。