《掌握布尔代数和常见逻辑电路了解微型计算机的常用技术术》由会员分享,可在线阅读,更多相关《掌握布尔代数和常见逻辑电路了解微型计算机的常用技术术(130页珍藏版)》请在金锄头文库上搜索。
1、第二章第二章 微型计算机基础知识微型计算机基础知识本章学习目标本章学习目标掌握微型计算机中的数制及其编码掌握微型计算机中的数制及其编码 掌握布尔代数和常见逻辑电路掌握布尔代数和常见逻辑电路 了解微型计算机的常用技术术语和技术了解微型计算机的常用技术术语和技术11微型机中的数制及其编码一、数与数制一、数与数制 进位计数制,简称数制。进位计数制,简称数制。十进制:十进制:人们习惯采用的计数制是十进制。人们习惯采用的计数制是十进制。 0 09 9 十个不同的基数,逢十进一。十个不同的基数,逢十进一。 用用D D表示或省略。表示或省略。二进制:二进制:计算机所采用的计数制是二进制。计算机所采用的计数制
2、是二进制。 只有只有0 0、1 1两个不同的基数,逢二进一。两个不同的基数,逢二进一。 用用B B表示。表示。 因因为为计计算算机机用用晶晶体体管管截截止止、饱饱和和两两个个状状态下的输出电平态下的输出电平1 1、0 0表示数字。表示数字。2十进制与二进制转换十进制与二进制转换人人机机交交互互时时采采用用十十进进制制,计计算算机机内内数数据据存存储储、计计算算、处处理理用用二二进进制制,需需要要需需要要进进行行转转换换。在在计计算算机中的解决方法是,利用机中的解决方法是,利用接口技术接口技术作转换。作转换。 如如:用用键键盘盘输输入入数数据据时时使使用用十十进进制制数数,即即输输入入电电路路使
3、使用用的的键键盘盘是是十十进进制制数数,输输入入接接口口电电路路将将十进制数转换为二进制数后送到机器内部;十进制数转换为二进制数后送到机器内部;3二、不同数制之间的转换二、不同数制之间的转换1 1、十进制数转换为二进制数、十进制数转换为二进制数十进制数转换为二进制数的方法十进制数转换为二进制数的方法整整数数部部分分转转换换方方法法:除除以以2 2取取余余,直直到到商商为为0 0为为止止。最后将所有余数倒序排列,得到转换结果。最后将所有余数倒序排列,得到转换结果。小小数数部部分分转转换换方方法法:乘乘以以2 2取取整整,直直到到满满足足精精度度要求为止。要求为止。4例例1 1:将十进制数:将十进
4、制数100100转换为二进制数转换为二进制数(100)10=(01100100)2 或者表示为:或者表示为: 100D=01100100B5例例2 2:将十进制数:将十进制数45.61345.613转换成二进制数转换成二进制数45.613 (101101.100111)2 或或45.613D101101.100111B62 2、二进制数转换为十进制数、二进制数转换为十进制数转换方法:按权展开相加。转换方法:按权展开相加。 例例如如,一一个个8 8位位的的二二进进制制数数的的各各位位的的权权值值依依次次是是2 27 7 、 2 26 6 、 2 25 5 、 、2 20 0 。 如将如将1011
5、0110B10110110B转换为十进制数的方法是:转换为十进制数的方法是:即,即,(10110110)2 =(182)10或者表示为:或者表示为: 10110110B=182D 73 3、十六进制数、十六进制数优优点点:二二进进制制数数位位数数较较多多时时,读读写写不不方方便便。而使用十六进制表示简明。而使用十六进制表示简明。十六进制数表示:十六进制数表示: 09、A、B、C、D、E、F十六个不同的基数十六个不同的基数 逢十六进一逢十六进一 用用H表示。表示。8二进制数转换为十六进制数二进制数转换为十六进制数 原原理理:四四位位二二进进制制数数对对应应一一位位十十六六进进制制,所所以以二二进
6、进制制整整数数转转换换为为1616进进制制时时,从从最最低低位位开开始始,每每四四位位一一组组(不不足足四四位位时时高高位位补补0 0)转换成一位十六进制数据即可。转换成一位十六进制数据即可。 例如:例如:1011 0110B=B6H1011 0110B=B6H。9十六进制数转换为二进制数十六进制数转换为二进制数 十十六六进进制制数数据据转转换换为为二二进进制制数数据据时时,把把每一位十六进制数据直接写成四位二进制数。每一位十六进制数据直接写成四位二进制数。例如:例如:64H=0110 0100B64H=0110 0100B104 4位位二二进进制制数数和和一一位位十十六六进进制制数数具具有有
7、一一一一对对应应的的关关系。系。十六进制十六进制二进制二进制十六进制十六进制二进制二进制0000081000100019100120010A101030011B101140100C110050101D110160110E111070111F1111表表2-1 4位二进制数和一位十六进制数的对应关系位二进制数和一位十六进制数的对应关系11十六进制数据和十进制数据之间的转换十六进制数据和十进制数据之间的转换通过二进制转换;通过二进制转换;将将十十进进制制整整数数除除以以十十六六取取余余,小小数数部部分分乘乘以以十十六取整,可直接转换为十六进制数;六取整,可直接转换为十六进制数;将十六进制数按权展开
8、相加得到十进制数。将十六进制数按权展开相加得到十进制数。 n+1n+1位位十十六六进进制制数数的的权权值值分分别别为为1616n n、1616n-1n-1、16162 2、16161 1、16160 012三、数制数据的编码及其运算三、数制数据的编码及其运算 在计算机中,数据分在计算机中,数据分无符号数无符号数和和带符号数带符号数。无无符符号号数数用用整整个个机机器器字字长长的的全全部部二二进进制制位位表表示数值位示数值位, , 无符号位;无符号位;带符号数用带符号数用最高位最高位表示该数的表示该数的符号位符号位。 带符号数又有带符号数又有原码原码、补码补码和和反码反码三种形式。三种形式。13
9、1 1、原码表示法、原码表示法由由于于计计算算机机中中只只能能有有0 0、1 1两两种种数数,不不仅仅数数的的数数值值部部分分在在计计算算机机中中用用0 0、1 1编编码码的的形形式式表示,正、负号也只能用表示,正、负号也只能用0 0、1 1编码表示。编码表示。一一般般用用数数的的最最高高位位(Most Most Significant Significant BitBit,MSBMSB)表示数的正负符号。)表示数的正负符号。原原码码表表示示法法: :一一个个数数连连同同它它的的符符号号在在机机器器中中使用使用0 0、1 1进行编码。进行编码。14 例例如如,若若用用5 5位位二二进进制制数数
10、表表示示数数据据时时,最最高高位位表表示示符符号号,0 0表表示示正正数数,1 1表表示示负负数数,余下的四位表示数据:余下的四位表示数据:MSB=0MSB=0表示正数,如表示正数,如1011B1011B表示为表示为0 01011B1011B;MSB=1MSB=1表示负数,如表示负数,如1011B1011B表示为表示为1 11011B1011B。15机器数和真值机器数和真值把一个数在机器内的二进制形式称为机器数。把一个数在机器内的二进制形式称为机器数。把这个数本身称为该机器数的真值。把这个数本身称为该机器数的真值。上例的上例的“01011B01011B”和和“11011B11011B”就是两个
11、机就是两个机器数。器数。它们的真值分别为它们的真值分别为1011B1011B和和1011B1011B。16真真值值为为纯纯小小数数时时,其其原原码码形形式式为为X XS SX X1 1X X2 2X Xn n,其中,其中X XS S表示符号位。例如,表示符号位。例如, 若若X X0.01100.0110,则,则XX原原X X0.01100.0110; 若若X X-0.0110-0.0110,则,则XX原原1.01101.0110真值为纯整数时,其原码形式为真值为纯整数时,其原码形式为 X XS SX Xn nX Xn-1n-1X X2 2X X1 1,其中,其中X XS S表示符号位。表示符号
12、位。 178位二进制原码的表示范围为:位二进制原码的表示范围为: -127 -0 +0+12716位二进制原码的表示范围为:位二进制原码的表示范围为: -32767 -0 +0+32767原码表示中,真值原码表示中,真值0有两种不同的表示形式:有两种不同的表示形式: 0原原00000, 0原原1000018无符号数无符号数 没有符号位的数,称为无符号数。没有符号位的数,称为无符号数。 无符号数的最大值比有符号数大一倍。无符号数的最大值比有符号数大一倍。 如如字字长长为为8 8位位时时,能能表表示示的的无无符符号号数数的的最最大大值值为为11111111B11111111B,即即255255,而
13、而8 8位位有有符符号号数数的的最大值是最大值是01111111B01111111B,即,即+127+127。198位二进制无符号数的表示范围为:位二进制无符号数的表示范围为:025516位二进制无符号数的表示范围为:位二进制无符号数的表示范围为:065535原原码码的的优优点点是是直直观观易易懂懂,机机器器数数和和真真值值间间的的转转换换很很容容易易,用用原原码码实实现现乘乘、除除运运算算的的规则简单。规则简单。缺点缺点是加、减运算规则较复杂。是加、减运算规则较复杂。20原码计算存在的问题原码计算存在的问题 直接用直接用0 0、1 1表示正、负,运算时带来的表示正、负,运算时带来的问题:有符
14、号数和无符号数的表示形式并问题:有符号数和无符号数的表示形式并没有任何区别,所以,没有任何区别,所以,CPUCPU在进行运算时,在进行运算时,并不知道参与运算的数是有符号数还是无并不知道参与运算的数是有符号数还是无符号数,在进行有符号数的运算时,会将符号数,在进行有符号数的运算时,会将符号也当作是数值进行运算,因而有时会符号也当作是数值进行运算,因而有时会出现出现错误的结果错误的结果。21两个正数相加时,符号位也同时相加两个正数相加时,符号位也同时相加若若两两个个数数之之和和不不超超出出其其所所能能表表示示的的最最大大值值127127时时,符符号号位位相相加加:0 00 00 0,即即和和仍仍
15、然然为为正正数数,结果正确。结果正确。若若两两个个数数之之和和超超出出了了其其所所能能表表示示的的最最大大值值127127时时,就就会会产产生生数数字字位位向向符符号号位位的的进进位位,两两个个符符号号位位相相加加0 00 00 0,再再加加上上低低位位进进上上来来的的1 1,则则符符号号位位为为1 1,作作为为有有符符号号数数,表表示示两两个个正正数数相相加的和为负数,显然是不对的。加的和为负数,显然是不对的。22例例1 1,两个有符号正数,两个有符号正数01010111B01010111B(87D87D) 和和00010110B00010110B(22D22D)相加。)相加。其和为其和为1
16、101101B1101101B,即十进制的,即十进制的109109127127,符号位为符号位为0 0,表示和为正数,结果正确。,表示和为正数,结果正确。23例例2 2,两两个个有有符符号号正正数数00110111B00110111B(55D55D)和和01011101B01011101B(93D93D)相加。)相加。和应为和应为+148+148,但符号位为,但符号位为1 1,表示和是负数,错误。,表示和是负数,错误。产生错误的原因是:产生错误的原因是:相加的和是相加的和是148148127127,超出了超出了8 8位有符号正数所能位有符号正数所能表示的最大值,对于有表示的最大值,对于有符号数
17、,这种数值运算符号数,这种数值运算侵入到符号位造成结果侵入到符号位造成结果错误的情况,称为错误的情况,称为溢出溢出。24一一个个正正数数与与一一个个负负数数相相加加,和和的的符符号号位位不不应是两个符号位直接运算的值:应是两个符号位直接运算的值:0 01 11 1。 和和的的符符号号位位应应由由两两数数中中绝绝对对值值大大的的数数所所决决定。定。两两个个负负数数相相加加时时,由由于于1 11 11010,符符号号位位只只表表示示0 0,因因此此和和的的符符号号也也不不应应是是由由两两符符号号位直接运算的结果所决定。位直接运算的结果所决定。为为解解决决机机器器内内有有符符号号数数的的符符号号位位
18、参参加加运运算算的问题,引入了的问题,引入了反码反码和和补码补码。252 2、反码表示法、反码表示法对正数来说,其反码和原码相同。对正数来说,其反码和原码相同。 即即 原原 反反。对对负负数数来来说说,反反码码为为其其原原码码的的符符号号位位不不变变,数数值值部分的各位取反。部分的各位取反。在反码表示中,真值在反码表示中,真值0 0也有两种不同的表示也有两种不同的表示 形式:形式: 00反反00000B00000B 00反反11111B11111B 26真值、原码、反码的不同表示真值、原码、反码的不同表示 原原 反反1101B01101B01101B1101B11101B10010B27反码运
19、算要注意以下三个问题:反码运算要注意以下三个问题:符号位可与数值位一样参加运算。符号位可与数值位一样参加运算。符符号号位位运运算算后后如如有有进进位位产产生生,则则把把这这个个进进位位送送回到最低位去相加,这叫循环进位。回到最低位去相加,这叫循环进位。反码运算具有性质:反码运算具有性质:XX反反YY反反XXYY反反283 3、补码表示法、补码表示法同余的概念同余的概念两整数两整数A A和和B B除以同一正整数除以同一正整数M M,所得余数相,所得余数相同,则称同,则称A A和和B B对对M M同余。同余。 可写成:可写成:A AB B(mod Mmod M)例如:对钟表来说,其模例如:对钟表来
20、说,其模M M1212,故,故4 4点和点和1616点、点、5 5点和点和1717点点均是同余的。均是同余的。 4 41616(mod 12mod 12),),5 51717(mod 12mod 12)29指针式钟表的校准(快两个小时指针式钟表的校准(快两个小时) )方法一:往回拨两个小时方法一:往回拨两个小时方法二:往前拨方法二:往前拨1010个小时,结果相同。个小时,结果相同。 钟钟表表按按照照1212小小时时循循环环计计数数,一一旦旦加加到到大大于于1212小时时,就会将小时时,就会将1212舍弃,计为舍弃,计为0 0点。点。30这这种种按按照照周周期期循循环环的的数数的的周周期期叫叫做
21、做模模,这这里里模模是是1212,数数一一旦旦大大于于或或等等于于其其模模,就就会会被自动舍弃。被自动舍弃。所所以以,5+10-12=35+10-12=3,而而5-2=5+10-5-2=5+10-12=5+12=5+(10-1210-12),),1010可看作可看作-2-2的补码。的补码。 即即以以1212为为模模时时,2 2和和1010同同余余。同同余余的的两两个个数数具具有有互互补补关关系系, , 2 2与与1010对对模模1212互互补补,即即2 2的补码是的补码是1010。31可可见见,只只要要确确定定了了“模模”,就就可可找找到到一一个个与与负负数数等等价价的的正正数数( ( 该该正
22、正数数是是负负数数的的补补码码 ) )来来代代替替此此负负数数,这这个个正正数数可可用用模模加加上上负负数数本本身身求求得得,这这样样就就可可把把减减法法运运算算用用加加法法实实现了。现了。32补码的概念:补码的概念:知知道道模模的的大大小小,求求某某个个负负数数的的补补码码时时,只只要要将将该该负负数数加加上上其其模模,就就得得到到它它的的补补码。码。如以如以“1010”为模,为模,“-7-7”的补码为的补码为 (7 7)+10+10 3 3 (mod 10mod 10) 这时这时“3 3”就是就是“-7-7”的补码。的补码。 33某某一一正正数数加加上上一一个个负负数数时时,实实际际上上是
23、是做做一一次次减减法法。引引入入补补码码概概念念之之后后,可可将将该该正正数数加加上上这这个个负负数数的的补补码码,最最高高位位产产生生的的进进位位会会自自然然丢丢失失,所所以以得得到到的的结结果果同同样样是是正正确确的。的。 例如,当模为例如,当模为10时,时, 7(-7) 7(-7+10)=7+3 =10=10-10 = 0(mod 10) 又如,又如, 7+(-4)=7+(-4+10)=7+6=13=13-10=3 (mod 10)34以以2 2n n为模的补码为模的补码 在在计计算算机机中中,带带符符号号的的数数用用二二进进制制补补码码表表示示。存存放放数数据据的的存存储储器器的的位位
24、数数都都是是确确定定的的。如如每每个个存存数数单单元元的的字字长长为为n n位位,则则它的模就是它的模就是2 2n n。 2 2n n是是n nl l位位的的二二进进制制数数1001000B0B(1 1后后面面有有n n个个0 0),由由于于机机器器只只能能表表示示n n位位数数,因因此此数数2 2n n在在机机器器中中仅仅能能以以n n个个0 0来来表表示示,而而该该数数最最高高位位的的数数字字1 1就就被被自自动动舍舍弃弃了了。则则以以2 2n n为为模模时时2 2n n和和0 0在在机机器器中中的的表表示示形形式式是是完完全全一一样的。样的。35如果将如果将n n位字长的二进制数的最高位
25、留做符号位字长的二进制数的最高位留做符号位,则数字只剩下位,则数字只剩下n-1n-1位,下标从位,下标从n-2n-2到到0 0,数,数字字X X 的补码(以的补码(以2 2n n为模)的表示形式为:为模)的表示形式为:当当X X为正数时,即为正数时,即X X+X+Xn-2n-2X Xn-3n-3X X1 1X X0 0时,时, XX补补=2=2n n+X+X =0 X =0 Xn-2n-2X Xn-3n-3X X1 1X X0 0 (mod2(mod2n n) ) =X =X原原36当当X为负数时,即为负数时,即X-Xn-2Xn-3X1X0时,时,37例如,例如,n=8时,时,28=10000
26、0000B,则,则1010111B的补码为:的补码为:1010111B补补100000000B1010111B 10101001B或或1010111B补补1010111B反反1 10101000B1 10101001B38正数:补码和原码的形式相同:正数:补码和原码的形式相同: 原原 补补;负负数数:补补码码为为其其反反码码(数数值值部部分分各各位位变变反反)加。加。例如:例如: 原原 反反 补补正数正数 0001101B 00001101B 0001101B 00001101B 00001101B00001101B 00001101B00001101B负数负数 0001101B 100011
27、01B 11110010B 11110011B0001101B 10001101B 11110010B 11110011B39不论是正数,还是负数,反码与补码具有不论是正数,还是负数,反码与补码具有下列相似的性质:下列相似的性质: 反反 反反 原原 补补 补补 原原40【例例2-12-1】+13+13和和-13-13的的原原码码、反反码码、补补码码以以及及反码的反码和补码的补码如下:反码的反码和补码的补码如下: X X 原原 反反 补补 反反 反反 补补 补补 0001101B 00001101B 0001101B 00001101B 00001101B00001101B 00001101B0
28、0001101B 00001101B00001101B 00001101B00001101B 0001101B 10001101B 11110010B 11110011B 10001101B 0001101B 10001101B 11110010B 11110011B 10001101B 10001101B10001101B 41 无符号数无符号数有符号数有符号数十进制数十进制数二进制数二进制数真值真值原码原码反码反码补码补码127101281292550111 1111B0000 0001B0000 0000B1000 0000B1000 0001B1111 1111B+127:+1+0-0
29、-1:-127-1280111 1111B:0000 0001B0000 0000B1000 0000B1000 0001B:1111 1111B不能表示不能表示0111 1111B:0000 0001B0000 0000 B1111 1111 B1111 1110 B:1000 0000 B不能表示不能表示0111 1111 B:0000 0001 B0000 0000 B0000 0000 B1111 1111 B:1000 0001 B1000 0000 B表表2-2 8位二进制数的原码、反码、补码的表示位二进制数的原码、反码、补码的表示42 可可见见, 8 8位位字字长长,原原码码、反
30、反码码表表示示的的数数的的 范范围围为为127127127127,而而补补码码表表示示的的数数的的范范围为围为127127128128。下面对两个特殊的数的补码作进一步说明:下面对两个特殊的数的补码作进一步说明:0 0的补码的补码 +0+0补补00000000B00000000B -0 -0原原10000000B10000000B,经求反加,经求反加1 1,得,得00000000B00000000B, 所以,所以,-0-0补补00000000B00000000B。 即,对补码,即,对补码, +0+0补补 -0-0补补00000000B00000000B43-128-128的补码的补码根据补码的
31、定义,根据补码的定义, 128128补补= 2= 28 8( (128)128) = 2 = 28 8 ( (127)-1127)-1 =100000000B-1111111B-1 =100000000B-1111111B-1 =100000001B-1 =100000001B-1 =10000000B =10000000B44数值数据的运算数值数据的运算采用补码进行加减运算时要注意以下几个问题:采用补码进行加减运算时要注意以下几个问题:溢出溢出 补码运算时,其符号位与数值部分一样参加运算,但补码运算时,其符号位与数值部分一样参加运算,但结果不能超出其所能表示的数的范围,否则会出现溢出错结果不
32、能超出其所能表示的数的范围,否则会出现溢出错误。误。 无符号数的加减运算结果超出数的范围的情况叫做进位无符号数的加减运算结果超出数的范围的情况叫做进位或借位,计算机中有专用的标志位作记录,只要适当处理或借位,计算机中有专用的标志位作记录,只要适当处理这些标志,结果就不会出错,所以在多字节数的加减运算这些标志,结果就不会出错,所以在多字节数的加减运算时必须考虑进位和借位的处理。时必须考虑进位和借位的处理。45采采用用了了补补码码以以后后,符符号号运运算算后后如如出出现现进进位位,则则把把这这个个进进位位舍舍去去不不要要,不不影影响响运运算算结结果果,运运算算后的符号就是结果的符号。后的符号就是结
33、果的符号。补码运算的性质:补码运算的性质: 补补补补补补 补补补补补补以上运算性质,与数的位数以上运算性质,与数的位数n无关。无关。46下面以二进制数的补码运算为例,说明有符号数的下面以二进制数的补码运算为例,说明有符号数的运算性质运算性质【例例2-22-2】已知:已知:+0101101B+0101101B 0000001B0000001B求?求?解:补解:补= 00101101= 00101101补补= 11111111= 11111111 补补 = 100101100= 100101100 进位舍去不要进位舍去不要补补补补0101100B=X0101100B=X补补+Y+Y补补47【例例2
34、-32-3】已知:已知:0001101B0001101B 0000001B0000001B求:?求:?解:补解:补 = 11110011= 11110011补补 = 11111111= 11111111 补补 = 111110010 = 111110010 进位舍去不要进位舍去不要所以,补补所以,补补0001110B0001110B48【例例2-42-4】已知:已知:+1+1128128 求:?求:?解:补解:补0000000100000001补补1000000010000000 补补1000000110000001所以,补补所以,补补11111111B11111111B 12712749加法
35、器就能完成所有的算术运算加法器就能完成所有的算术运算加加法法算算减减法法:因因为为减减去去一一个个正正数数的的减减法法运运算算可可以以看看作作是是加加上上一一个个负负数数的的加加法法运运算算,所所以以在在计计算算机机中中,求求得得补补码码之之后后,就就把把减减一一个个正正数数的的运运算算转转变变为为加加上上该该负负数数的的补补码码的加法运算。的加法运算。加加法法算算乘乘法法:可可以以采采用用移移位位相相加加的的方方法法完完成。成。加加法法算算除除法法:采采用用移移位位相相减减的的方方法法完完成成,这样只用加法器就能完成所有的算术运算。这样只用加法器就能完成所有的算术运算。50三种编码小结:三种
36、编码小结:对正数而言,上述三种码都等于真值本身。对正数而言,上述三种码都等于真值本身。最最高高位位都都表表示示符符号号位位,补补码码和和反反码码的的符符号号位位可可与与数数值值位位一一样样对对待待,和和数数值值位位一一起起参参加加运运算算;但原码的符号位必须与数值位分开处理。但原码的符号位必须与数值位分开处理。原原码码和和反反码码的的真真值值0 0各各有有两两种种不不同同的的表表示示方方式式,而补码的真值而补码的真值0 0表示是唯一的。表示是唯一的。514 4、十进制数的编码、十进制数的编码常用的十进制数编码有:常用的十进制数编码有: BCDBCD码(码(Binary-Coded Decima
37、lBinary-Coded Decimal) 余余3 3码码 格雷码格雷码BCDBCD码码:是是二二进进制制编编码码形形式式的的十十进进制制数数。即即用用4 4位位二二进进制制数数表表示示一一位位十十进进制制数数,这这种种编编码码形形式式可可以以有有多多种种,其其中中最最自自然然、最最常常用用的一种形式为的一种形式为8-4-2-1BCD8-4-2-1BCD码。码。52非压缩非压缩BCDBCD 用一个字节的用一个字节的8 8位二进制数表示十进制数时,若位二进制数表示十进制数时,若每个字节的高四位为每个字节的高四位为0 0,只用其低四位表示一位十,只用其低四位表示一位十进制数,则称为非压缩的进制数
38、,则称为非压缩的BCDBCD码,表示格式如图所码,表示格式如图所示。它所表示的数的范围是示。它所表示的数的范围是0-90-9。D7D6D5D4D3D2D1D00000个位个位图2-3 非压缩BCD码的表示格式53D7D6D5D4D3D2D1D0十位十位个位个位图2-4 压缩BCD码的表示格式压缩压缩BCD若将若将8位用于表示两位十进制数,则称为压缩的位用于表示两位十进制数,则称为压缩的BCD码,表示格式如图所示。它所表示的数的范码,表示格式如图所示。它所表示的数的范围是围是0-99。54例如,若用例如,若用4 4个字节表示十进制数个字节表示十进制数43214321用用 非非 压压 缩缩 的的
39、BCDBCD码码 表表 示示 时时 是是 0000010000000100, 0000001100000011, 0000001000000010, 0000000100000001;写成十六进制的形式写成十六进制的形式: 04H: 04H、03H03H、02H02H、01H01H;用用 压压 缩缩 的的 BCDBCD码码 表表 示示 时时 , 为为 : 0100001101000011,0010000100100001;写成十六进制的形式:写成十六进制的形式:43H43H、21H21H。55 尽尽管管在在84218421码码中中09,1009,10个个数数码码的的表表示示形形式式与与用用二二
40、进进制制表表示示的的形形式式一一样样,但但这这是是两两个个完全不同的概念,不能混淆。完全不同的概念,不能混淆。 如如 , 十十 进进 制制 数数 3939可可 表表 示示 为为 (0011 (0011 1001)1001)84218421或或100111B100111B, 两者是完全不同的。两者是完全不同的。56四、非数值数据的编码四、非数值数据的编码 计计算算机机不不仅仅能能对对数数值值数数据据进进行行处处理理,还还能能够对文本和其它非数值数据信息进行处理。够对文本和其它非数值数据信息进行处理。非非数数值值数数据据是是指指不不能能进进行行算算术术运运算算的的数数据据,如如:字字符符、字字符符
41、串串、图图形形符符号号和和汉汉字字、语语音音与图像等多种数据。与图像等多种数据。这这些些信信息息在在传传送送时时,不不是是直直接接传传送送和和处处理理其其原原值值,而而是是先先按按照照某某种种规规则则进进行行一一定定的的处处理理,以以便便使使之之具具有有通通用用的的传传送送格格式式。经经过过这这种种处处理的数值信息,称为编码。理的数值信息,称为编码。571 1、ASCIIASCII编码编码处处理理文文本本文文件件时时,每每个个字字符符都都由由其其相相应应的的标标准准字字模模构构成成,文文本本文文件件本本身身并并不不包包括括这这些些字字模模,而而只只是是使使用用其其编编码码来来表表示示每每个个字
42、字符。符。例例如如,使使用用区区位位编编码码的的中中文文编编辑辑时时,4 4位位十十进进制制区区位位码码可可以以表表示示一一万万个个不不同同的的字字符符。国国际际上上通通用用的的标标准准字字符符编编码码为为ASCIIASCII码码(American (American Standard Standard Code Code for for Information Information InterchangeInterchange,ASCII)ASCII),即即美美国标准信息交换码。国标准信息交换码。58ASCIIASCII码共定义了码共定义了256256个代码(从个代码(从0-2550-25
43、5)从从 0-320-32位位 为为 控控 制制 字字 符符 ( ASCII ASCII control control characterscharacters)从从33-12733-127位位为为可可打打印印字字符符(ASCII ASCII printable printable characterscharacters)从从0-1270-127是标准的是标准的ASCIIASCII编码编码从从128-255128-255是扩展的是扩展的ASCIIASCII编码编码59标准标准ASCIIASCII码:用码:用7 7位二进制编码表示位二进制编码表示8787个字符个字符 2626个小写英文字母个
44、小写英文字母 :41H41H5AH5AH 26 26个大写英文字母个大写英文字母 :61H61H7AH7AH 10 10个数字码(个数字码(0909):):30H30H39H39H 25 25个特殊字符:,个特殊字符:, ,等,等 共计共计8787个字符。个字符。60 附附录录A A为为ASCIIASCII码码字字符符表表,它它用用8 8位位二二进进制制数数表表示示字字符符代代码码。其其基基本本代代码码占占7 7位位,第第8 8位位可可用用作作奇奇偶偶校校验验,通通过过对对奇奇偶偶校校验验位位设设置置“1 1”或或“0 0”状状态态,保保持持8 8位位字字节节中中的的“1 1”的的个个数数总总
45、是是奇奇数数(称称为为奇奇校校验验)或或偶偶数数(称称为为偶偶校校验验),一一般般用用于于字字符符或或数数字字的的串串行行传传送时检测传送过程中是否出错。送时检测传送过程中是否出错。612 2、汉字编码、汉字编码汉字输入编码汉字输入编码 汉汉字字信信息息处处理理系系统统一一般般包包括括编编码码、输输入入、存存储储、编编辑辑、输输出出和和传传输输。编编码码是是关关键键。不不解解决决这这个个问问题题,汉汉字字就就不不能能进进入入计计算算机机。汉汉字字输输入入编编码码是是用用计计算算机机标标准准键键盘盘上上按按键键的的不不同排列组合来对汉字进行编码。同排列组合来对汉字进行编码。 62常常用用的的输输
46、入入编编码码有有数数字字、字字音音、字字形形和音形编码等。和音形编码等。数数字字编编码码:如如电电报报码码、区区位位码码等等。无无重重码码,但但难记。难记。字字音音编编码码:以以汉汉语语拼拼音音作作为为编编码码基基础础。简简单单易易学,但重码很高,如搜狗拼音、全拼、双拼等。学,但重码很高,如搜狗拼音、全拼、双拼等。字字形形编编码码法法:如如五五笔笔字字型型码码、郑郑码码等等。具具有有重重码少的优点。码少的优点。音音形形编编码码法法:音音形形编编码码吸吸取取了了音音码码和和形形码码的的优优点点,使使编编码码规规则则简简化化,重重码码少少。常常用用的的有有全全息息码等。码等。63汉字国标码汉字国标
47、码 汉汉字字国国标标码码即即国国标标码码,是是不不同同汉汉字字信信息息处处理理系系统统间间进进行行汉汉字字交交换换时时所所使使用用的的编编码码。国国标标码码以以国国家家标标准准局局颁颁布布的的GB2312-80GB2312-80规规定定的的汉汉字字交交换换码码作作为为标标准准汉汉字编码。共收录字编码。共收录74457445个。个。在在字字符符集集中中,汉汉字字和和字字符符分分94个个区区,每每区区94位位。每每个个汉汉字字及及字字符符用用两两个个字字节节表表示示,前前一一个个字字节节为为区区码码,后后一一字字节节为为位位码码,各各用用两两位位16进进制制数数字表示。这就是所谓的汉字区位码。字表
48、示。这就是所谓的汉字区位码。汉汉字字区区位位码码并并不不等等于于汉汉字字国国标标码码,两两者者间间的的关关系可用以下公式表示:系可用以下公式表示: 国标码区位码(化成国标码区位码(化成16进制)进制)2020H64汉字机内码汉字机内码 汉汉字字机机内内码码简简称称汉汉字字内内码码,是是在在计计算算机机外外设设和和信信息息系系统统内内部部存存储储、处处理理、传传输输汉汉字用的代码。字用的代码。 在在西西文文计计算算机机中中,无无交交换换码码和和内内码码之之分分,一一般般以以ASCIIASCII码码作作为为内内码码。英英文文字字符符的的机机内内码是码是7 7位位ASCIIASCII码,最高位为码,
49、最高位为0 0 (即(即D7D70 0)。)。65 汉汉字字内内码码用用两两个个字字节节表表示示。为为了了区区分分汉汉字字字字符符与与英英文文字字符符,将将汉汉字字国国标标码码的的每每个个字节的最高位置字节的最高位置1 1,作为汉字机内码。,作为汉字机内码。 如如,“啊啊”的的国国标标码码为为0011 0011 0000 0000 0010 0010 00010001(3021H3021H),机机内内码码为为1011 1011 0000 0000 1010 1010 00010001(B0A1HB0A1H) 汉字机内码汉字国标码汉字机内码汉字国标码8080H8080H66汉字字形码汉字字形码
50、汉汉字字用用点点阵阵方方式式表表示示其其外外形形,这这个个点点阵阵称为汉字字模,也称为汉字字形码。称为汉字字模,也称为汉字字形码。 不不管管汉汉字字的的笔笔划划多多少少,都都可可在在同同样样的的方方块块中中书书写写,把把方方块块分分割割为为许许多多小小方方块块,组组成成一一个个点点阵阵,每每个个小小方方块块就就是是点点阵阵中中的的一一个个点点,即即二二进进制制的的一一个个位位。每每个个点点由由0 0和和1 1表表示示“白白”和和“黑黑”两两种种颜颜色色。用用这这样样的的点阵就可输出汉字。点阵就可输出汉字。67 不同的输入不同的输入编码输入到计算编码输入到计算机中,都统一使机中,都统一使用国标码
51、。各种用国标码。各种代码间的逻辑关代码间的逻辑关系如图所示。系如图所示。图2-5 各种代码间的逻辑关系68【例例2-52-5】汉汉字字“春春”的的区区位位码码为为20-2620-26,计计算算其其国国标码和机内码。标码和机内码。 区位码:区位码: 第第1 1字节字节 第第2 2字节字节 十进制十进制 20 2620 26 十六进制十六进制 14H 1AH14H 1AH 20H 20H 20H 20H 国标码:国标码: 34H 3AH34H 3AH 80H 80H 80H 80H 机内码:机内码: B4H BAHB4H BAH69一、布尔代数一、布尔代数 布尔代数是英国数学家乔治布尔代数是英国数
52、学家乔治布尔布尔(George BooleGeorge Boole)发明的,布尔也是数理)发明的,布尔也是数理逻辑的创始人。近几十年来,布尔代数在逻辑的创始人。近几十年来,布尔代数在自动化技术、电子计算机的逻辑设计等工自动化技术、电子计算机的逻辑设计等工程技术领域中有重要的应用。程技术领域中有重要的应用。2布尔代数和常见逻辑电路布尔代数和常见逻辑电路70布布尔尔代代数数是是以以命命题题为为对对象象,包包含含三三种种基基本本逻逻辑辑操操作作(与与,或或,非非)的的完完整整的的代代数数学学,它可以对命题进行运算。它可以对命题进行运算。基本的运算符有基本的运算符有+ +,和和。 二元运算二元运算+
53、+ 称为布尔加法,布尔和,布尔并等;称为布尔加法,布尔和,布尔并等; 二元运算二元运算称为布尔乘法,布尔积,布尔交等;称为布尔乘法,布尔积,布尔交等; 一元运算一元运算称为布尔补,有时使用称为布尔补,有时使用“ ”表示。表示。 71运算的基本依据是下面的基本公式和规则:运算的基本依据是下面的基本公式和规则:交换律:交换律:A AB BB BA A A AB BB BA A结合律:结合律:A A(B(BC)C)(A(AB)B)C C A A(B(BC)C)(A(AB)B)C C分配律:分配律:A A(B BC C)(A(AB)B)(A(AC) C) A A(B(BC)C)A AB BA AC C
54、72吸收律:吸收律:第二吸收律:第二吸收律:反演律反演律(又称摩根定律):(又称摩根定律):包含律:包含律:重叠律:重叠律:73互补律互补律:A AA A1 1 A AA A0 00-10-1律:律: 0 0A AA A 1 1A AA A 0 0A A0 0 1 1A A1 1 反反演演律律即即摩摩根根定定律律,常常用用于于复复杂杂逻逻辑辑函函数数的化简。的化简。74二、基本逻辑运算和逻辑门电路二、基本逻辑运算和逻辑门电路 逻逻辑辑运运算算主主要要包包括括与与、或或、非非、异异或或等等。逻辑变量只有两个:逻辑变量只有两个:逻辑逻辑0 0和和逻辑逻辑1 1。 逻逻辑辑运运算算只只是是按按位位进
55、进行行运运算算,没没有有进进位位和和借位关系,逻辑变量也没有符号问题。借位关系,逻辑变量也没有符号问题。751 1、基本逻辑运算和逻辑门电路、基本逻辑运算和逻辑门电路逻辑与(逻辑与(ANDAND) 逻辑与也叫逻辑乘,其结果叫逻辑积。逻辑与也叫逻辑乘,其结果叫逻辑积。 运运算算规规则则:逻逻辑辑与与运运算算的的规规则则是是按按位位相相与与,当当两两位位逻逻辑辑变变量量都都为为逻逻辑辑1 1时时,逻逻辑辑积积才才为为1 1,否则逻辑积为,否则逻辑积为0 0。 逻逻辑辑与与的的运运算算符符号号是是:“”或或者者“”。表示逻辑与运算的圆点也可以省略。表示逻辑与运算的圆点也可以省略。76 若用若用Y Y
56、表示逻辑积,表示逻辑积,A A和和B B分别表示两个逻辑分别表示两个逻辑变量时,其表达式为:变量时,其表达式为: 两个逻辑变量两个逻辑变量A A、B B及其逻辑积及其逻辑积Y Y的关系的的关系的真值表如表真值表如表2-32-3所示。所示。例如例如ABY=AB000010100111和逻辑与运算对应的逻辑电路是和逻辑与运算对应的逻辑电路是“与门与门”。表2-3 逻辑与的真值表77逻辑或(逻辑或(OROR) 逻辑或也叫逻辑加,其结果叫逻辑和。逻辑或也叫逻辑加,其结果叫逻辑和。 运运算算的的规规则则也也是是按按位位运运算算,两两位位逻逻辑辑变变量量中中只只要要有有任任何何一一个个为为逻逻辑辑1 1时
57、时,逻逻辑辑或或的的结结果果就为就为1 1,否则逻辑或的结果为,否则逻辑或的结果为0 0。 逻辑或的运算符号逻辑或的运算符号是:是:“+ +”或者或者“”。78ABY=A+B000011101111表2-4 逻辑或的真值表若若用用Y Y表表示示逻逻辑辑和和,A A和和B B分分别别表表示示两两个个逻逻辑辑变变量量时时,其表达式为:其表达式为: 两个逻辑变量两个逻辑变量A A、B B及其及其逻辑和逻辑和Y Y的关系的真值表的关系的真值表如表如表2-42-4所示。所示。例如,例如,和逻辑或运算对应的逻辑电路是和逻辑或运算对应的逻辑电路是“或门或门”79逻辑非(逻辑非(NOTNOT) 逻辑非也叫逻辑
58、反逻辑非也叫逻辑反 运算规则运算规则:将一个变量按位求反的运算。:将一个变量按位求反的运算。 表达式为表达式为: 对于任一位逻辑数据,对于任一位逻辑数据, 逻辑非运算的真值表逻辑非运算的真值表 如表如表2-52-5所示。所示。表2-5 逻辑非的真值表80例如,若例如,若A=01100011A=01100011,则,则,Y=A=10011100Y=A=10011100和逻辑非对应的逻辑电路是和逻辑非对应的逻辑电路是“非门非门”。上述逻辑运算中,上述逻辑运算中,“非非”运算的级别最高;运算的级别最高;“与与”运算次之;运算次之;“或或”运算最低。运算最低。812 2、组合逻辑电路、组合逻辑电路与非
59、门:与非门: 或非门:或非门: 异或门:异或门:异异或或运运算算规规则则:两两变变量量相相同同为为0 0,不不同同为为1 1。它可进行两逻辑变量不相等的逻辑测试。它可进行两逻辑变量不相等的逻辑测试。 82逻辑异或的真值表如表逻辑异或的真值表如表2-62-6所示。所示。例如,设例如,设A=10110110A=10110110,B=00110101B=00110101即即Y=AY=A B =10000011B =10000011ABY=AB000011101110表2-6 逻辑或的真值表 83同或门同或门三态门三态门 在在各各种种数数字字电电路路中中,有有些些电电路路引引脚脚的的输输出出状状态态除
60、除了了高高、低低电电平平即即1 1、0 0之之外外,还还有有第第三三种种状状态态,即即高高阻阻状状态态,这这种种状状态态叫叫做做浮浮空空,也也叫叫做做高高阻阻、挂挂起起等等。具具有有高高阻阻态态输输出出的的门门电电路路称称为为三三态态门门,常常用用于于构构成成总总线线接接收收器器和和发送器。发送器。YAB=ABAB 84高高阻阻状状态态是是门门电电路路输输出出端端的的上上拉拉、下下拉拉两两个个晶晶体体管管在在控控制制端端的的作作用用下下都都处处于于截截止止状状态态,而而截截止止状状态所呈现的阻抗很高。态所呈现的阻抗很高。当当输输出出端端呈呈高高阻阻状状态态时时,输输出出端端不不输输出出任任何何
61、逻逻辑辑电平,就像是开路一样。电平,就像是开路一样。每每条条线线上上不不能能同同时时有有两两个个信信号号是是输输出出状状态态,所所以以当当几几个个芯芯片片的的输输出出端端连连在在一一起起的的时时候候,如如其其中中一一个个是是输输出出状状态态时时,其其他他芯芯片片的的输输出出端端不不能能同同时时也也是是输输出出状状态态,此此时时其其他他芯芯片片既既不不能能输输出出1 1,也也不不能能输输出出0 0,就就像像是是断断开开电电路路一一样样,这这就就是是高高阻阻状状态态,一般用符号一般用符号Z Z来表示。来表示。85三、常用组合逻辑电路三、常用组合逻辑电路1 1、 锁存器锁存器锁存锁存: : 把信号暂
62、存以维持某种电平状态。把信号暂存以维持某种电平状态。74LS373:74LS373:具具有有三三态态缓缓冲冲输输出出的的8D8D锁锁存存器器,当当地地址址线线和和数数据据线线复复用用的的时时候候,在在单单片片机机应用系统中常被用作地址锁存器。应用系统中常被用作地址锁存器。8674LS37374LS373的的 内内 部部 逻逻辑辑电电路路图图如如图图2-72-7所示所示图2-7 74LS373内部逻辑电路图 8774LS37374LS373引引脚脚图图如如图图2-2-8 8所示。所示。D0D7 D0D7 为为数数据据输输入入端端OCOC为为输输出出允允许许控控制制端端( (三三态态,低低电电平平
63、有效);有效);G G为为锁锁存存允允许许端端( (也也称为称为LELE端端) );Q0Q7Q0Q7为输出端。为输出端。图2-8 74LS373引脚图882 2、数据选择器、数据选择器在在数数字字电电路路中中,常常常常需需要要把把多多个个通通道道的的信信号号传传送送到到公公共共数数据据线线上上,完完成成这这一一功功能能的的逻辑电路称为数据选择器。逻辑电路称为数据选择器。数数据据选选择择器器又又称称多多路路选选择择器器或或多多路路开开关关,是是以以“与与或或”门门或或“与与或或非非”门门为为主主体体的的电电路路,其其功功能能是是在在通通道道选选择择信信号号的的作作用用下下,从从多多个个数数据据输
64、输入入通通路路中中选选择择某某一一个个通通道道的的数数据据作作为为该该选选择择器器的的输输出出。数数据据选选择择器器的的原理图如图原理图如图2-92-9所示。所示。89 S E 通道选择通道选择 使能输入使能输入数数据据输输入入2n选一选一数据数据选择器选择器数据输出数据输出YI0I1I2n-1I0I1I2n-1输输入入信信号号数据输出数据输出Y通道选择信号通道选择信号(a)示意图示意图(b)逻辑原理图逻辑原理图图2-9 数据选择器原理图90常常见见的的8 8选选1 1数数据据选选择择器器有有7415174151、7425174251;1616选选1 1数数据据选选择择器器有有74150741
65、50,也也可可以以用用两两片片7415174151连接起来构成。连接起来构成。具具体体的的使使用用方方法法,可可从从互互联联网网上上搜搜索索并并下下载数据手册查阅。载数据手册查阅。913 3、译码器、译码器计计算算机机的的数数据据总总线线是是一一组组公公共共信信号号线线,各各个个芯芯片片分分时时使使用用数数据据总总线线来来传传递递各各自自不不同同的的信信号号。从从硬硬件件的的角角度度来来看看,各各个个芯芯片片的的数数据据线线都都是是对对应应引引脚脚并并联联在在一一起起的的,那那么么数据是怎样区分其流向的呢?数据是怎样区分其流向的呢? 92计计算算机机的的三三总总线线包包括括数数据据总总线线、地
66、地址址总总线线和控制总线。和控制总线。当当计计算算机机向向一一个个芯芯片片送送出出一一个个数数据据时时,还还要要通通过过地地址址总总线线送送出出与与这这个个芯芯片片对对应应地地址址码码和和相相应应的的控控制制信信号号,这这个个地地址址码码是是由由硬硬件件电电路路的的连连接接确确定定的的。计计算算机机通通过过地地址址总总线线和和地地址址译译码码器器找找到到确确定定的的芯芯片片,再再由由控控制信号配合,完成对应的数据传送。制信号配合,完成对应的数据传送。93译码器电路的译码器电路的功能功能 把把一一组组输输入入代代码码的的状状态态组组合合翻翻译译成成相相应应的的控控制制电电位位,若若输输入入信信号
67、号有有n n个个,其其输输出出最最多多可可以以有有2 2n n个个。正正常常输输出出时时,2 2n n个个输输出出中中仅仅有有一一个个输输出出为为低低电电平平 (或或高高电电平平),其其他他2 2n n1 1个个 输出均为高电平(或低电平)。输出均为高电平(或低电平)。7413874138就是常用的译码器电路芯片。就是常用的译码器电路芯片。947413874138是是具具有有3 3个个输输入入、8 8个个输输出出的的集集成成译译码码器器,就就是是通通常常所所说说的的三三八八译译码码器器。3 3位位二二进进制制数数字字可可以以有有8 8种种不不同同的的组组合合,或或者者说说,3 3位二进制地址对
68、应位二进制地址对应2 23 3=8=8个不同的地址。个不同的地址。7413874138译译码码器器的的作作用用就就是是将将输输入入的的三三位位地地址址状状态态转转换换为为8 8个个不不同同的的输输出出之之一一,分分别别控控制制8 8个个不不同同的的电电路路的的芯芯片片。其其中中73LS13873LS138芯芯片片是是TTLTTL电平的,电平的,74HC13874HC138是是CMOSCMOS电平的。电平的。9574LS13874LS138译译码码器器芯芯片片的的引引脚脚图图和和逻逻辑辑符符号号图图如图如图2-102-10所示。所示。 图2-10 74LS138引脚图和逻辑符号图(a) 74LS
69、138引脚图 (b) 74LS138逻辑符号图96表2-9 74LS138真值表 74LS13874LS138的真值表如表的真值表如表2-92-9所示。所示。97一一个个正正确确的的读读写写操操作作需需要要三三总总线线都都有有信信号号,缺缺一一不不可可,且且时时间间上上先先后后顺顺序序配配合合得得当当。各各个个信信号号在在时间上的配合顺序称为时间上的配合顺序称为时序时序。一一般般的的接接口口芯芯片片都都有有一一个个片片选选端端/CS/CS,有有的的芯芯片片标标为为/CE/CE,即即芯芯片片选选择择或或芯芯片片使使能能的的意意思思。标标示示符符上上面面的的横横线线表表示示低低电电平平有有效效,就
70、就是是说说该该芯芯片片在在片片选选信信号号为为低低电电平平的的时时候候才才能能进进行行读读写写操操作作。若若片片选选端端无无效效,即即使使这这个个芯芯片片的的引引脚脚上上有有数数据据信信号号,控控制制端端也也有有读读写写控控制制信信号号,对对芯芯片片也也不不能能进进行行数数据据的读写操作。的读写操作。98下面举例说明地址译码器的使用下面举例说明地址译码器的使用7413874138与微控制器的简单连接如图与微控制器的简单连接如图2-112-11所示所示图2-11 译码器与微控制器的连接99由由图图2-92-9可可知知,数数据据线线、读读写写控控制制信信号号线线分分别别送送到到8 8个个接接口口电
71、电路路的的相相应应管管脚脚上上。但但是是每每个个接接口口芯芯片片的的片片选选信信号号/CS/CS接接到到了了7413874138不不同同的的输输出出端端。7413874138的的地地址址输输入入端端接接微微控控制制器的地址总线。器的地址总线。根根据据7413874138的的特特性性可可知知,当当3 3位位地地址址为为000000时时,7413874138的输出只有的输出只有 (有效),(有效), 均均为为高高电电平平(无无效效)。所所以以,此此时时只只有有接接口口芯芯片片0 0被被选选中中,外外设设0 0可可以以进进行行接接下下来来的的读读写写操操作作,其其他他芯芯片片未未被被选选中中,所所以
72、以不不会会进行读写操作。进行读写操作。100尽尽管管数数据据线线和和控控制制线线都都同同时时接接到到了了每每个个芯芯片片对对应应的的管管脚脚上上,但但是是片片选选信信号号无无效效的的芯芯片片没没有有对对应应的的操操作作,只只有有片片选选信信号号端端有有效效的芯片才会有操作。的芯片才会有操作。由由此此可可见见,接接口口0 0、接接口口1 1、接接口口7 7这这8 8个个接接口口的的地地址址编编码码分分别别为为000000、001001、010010、011011111111。选选择择不不同同的的地地址址,就就可可以以对对不不同同的的芯芯片片进进行行操操作作,就就是是各各个个外外设设分分时时使使用
73、用总总线线,也也就就完完成成了了对对不不同同的的外外设设进进行行读写操作了。读写操作了。101一、一、常用单位及术语常用单位及术语1 1、位(、位(bitbit) 计计算算机机所所能能表表示示的的最最小小的的数数字字单单位位,即即,二进制数的位。每位只有两种状态二进制数的位。每位只有两种状态0 0、1 1。2 2、字节(、字节(ByteByte) 8 8位位(bitbit)为为一一个个字字节节,是是内内存存的的基基本本单单位,常用位,常用B B表示。表示。3微型计算机的常用技术术语和技术微型计算机的常用技术术语和技术1023 3、字(、字(wordword) 1616位位二二进进制制数数称称为
74、为一一个个字字,一一个个字字等等于于两两个字节。个字节。 4 4、字长、字长 字字长长即即字字的的长长度度,是是一一次次可可以以并并行行处处理理的的数据的位数即数据线的条数。常与数据的位数即数据线的条数。常与CPUCPU内部的内部的寄存器、运算装置、总线宽度一致。常用微寄存器、运算装置、总线宽度一致。常用微型计算机字长有型计算机字长有8 8位、位、1616位和位和3232位。位。1035 5、数量单位、数量单位K K 千千 Kilo Kilo 的符号,的符号,1K=10241K=1024, 如如1KB1KB表示表示10241024个字节个字节 M M 兆兆 Million Million 的符
75、号,的符号, 1M=1K1M=1K1K1KG G 吉吉 Giga Giga 的符号,的符号, 1G=1K1G=1K1M1MT T 太太 TeraTera 的符号,的符号, 1T=1M1T=1M1M1M1046 6、MIPSMIPS(Million Instructions Per SecondMillion Instructions Per Second) MIPSMIPS为为单单字字长长定定点点指指令令平平均均执执行行速速度度Million Million Instructions Instructions Per Per SecondSecond的的缩缩写写,即即每每秒秒处处理理百百万万条
76、机器语言指令数。这是衡量条机器语言指令数。这是衡量CPUCPU速度的一个指标。速度的一个指标。7 7、地址、地址 地地址址是是微微型型计计算算机机存存储储单单元元的的编编号号,通通常常8bit8bit为为一一个个单单元元,每每个个单单元元有有独独立立的的编编号号。 存存储储器器地地址址的的最最大大编编号号(容容量量)有有限限,由由地地址址线线的的条条数数决决定定。如:如:u1616条地址线的容量为条地址线的容量为64KB64KB(0000HFFFFH0000HFFFFH););u2020条地址线的容量条地址线的容量1MB1MB(00000HFFFFFH00000HFFFFFH)。)。1058
77、8、总线、总线 CPUCPU是是微微型型计计算算机机的的核核心心。微微型型计计算算机机利利用用三三总总线线将将CPUCPU与与系系统统的的其其他他部部件件如如存存储储器器、 I/OI/O接口等联系起来的。接口等联系起来的。总线是具有同类性质的一组信号线。总线是具有同类性质的一组信号线。 三三总总线线分分别别是是地地址址总总线线AB(AddressAB(Address Bus)Bus)、数数 据据 总总 线线 DB(DataDB(Data Bus)Bus)和和 控控 制制 总总 线线CB(ControlCB(Control Bus) Bus)1069 9、访问、访问 CPUCPU对对寄寄存存器器
78、、存存储储器器或或I/OI/O接接口口电电路路的的操作通常分为两类:操作通常分为两类:把把数数据据存存入入寄寄存存器器、存存储储器器或或I/OI/O接接口口电电路路的操作称为的操作称为“写入写入”或写操作或写操作;把把数数据据从从寄寄存存器器、存存储储器器或或I/OI/O接接口口电电路路取取到到CPUCPU的操作称为的操作称为“读出读出”或读操作或读操作。 这两种操作过程通常统称为这两种操作过程通常统称为“访问访问”。1071010、机器指令、机器指令 机机器器指指令令是是由由二二进进制制代代码码组组成成,可可以以直直接由微处理器进行译码、执行。接由微处理器进行译码、执行。一一条条机机器器指指
79、令令应应包包含含要要求求微微处处理理器器所所要要完完成成的的操操作作,以以及及参参与与该该操操作作的的数数据据或或该该数数据据所所在在的的地地址址,有有时时还还要要有有操操作作结结果果的的存存放放地地址址信信息息,这这些些都都是是以以二二进进制制数数字字的的形形式式表表示示的的,当然,也有某些特殊指令不需要数据或地址。当然,也有某些特殊指令不需要数据或地址。1081111、汇编指令、汇编指令 虽虽然然微微处处理理器器能能够够而而且且只只能能够够识识别别二二进进制制数数,但但是是人人们们却却很很难难适适应应这这种种用用二二进进制制数数字字序列的指令形式来编程。序列的指令形式来编程。 例如,一条两
80、字节的单片机指令如下:例如,一条两字节的单片机指令如下: 0111010001110100 00110000 00110000 这这就就是是用用二二进进制制数数表表示示的的可可以以直直接接由由微微处理器进行译码、执行的机器指令。处理器进行译码、执行的机器指令。109指指令令的的含含义义是是:将将一一个个8 8位位二二进进制制数数据据30H30H送送到到CPUCPU内部的寄存器内部的寄存器A A中中人人们们在在编编程程时时使使用用的的是是比比较较容容易易看看出出其其操操作作含含义义的、用英文缩写形式表示的指令的、用英文缩写形式表示的指令 例如上面的指令可写成:例如上面的指令可写成: MOV A,
81、 #30HMOV A, #30H 这这种种形形式式的的指指令令叫叫做做汇汇编编指指令令,这这种种编编程程语语言言称称为汇编语言。为汇编语言。 不不同同厂厂家家的的CPUCPU配配备备有有不不同同格格式式的的汇汇编编语语言言指指令令系系统统,互互不不兼兼容容,用用汇汇编编语语言言编编写写的的程程序序叫叫做做汇汇编语言源程序。编语言源程序。1101212、指令系统、指令系统 指指令令系系统统是是一一台台计计算算机机所所能能识识别别的的全全部部指令的集合。指令的集合。1313、汇编与反汇编、汇编与反汇编汇汇编编: :汇汇编编语语言言源源程程序序翻翻译译成成与与之之相相对对应应的的用用二二进进制制数数
82、表表示示的的机机器器语语言言,才才能能被被微微处处理理器所识别和执行,这种翻译叫做汇编。器所识别和执行,这种翻译叫做汇编。111 每每一一条条汇汇编编语语句句都都可可以以汇汇编编成成对对应应的的机机器器语语言言,虽虽然然可可以以用用人人工工汇汇编编,但但是是人人工工汇汇编编太太麻麻烦烦,且且容容易易出出错错,人人们们就就编编写写了了专专门门的的汇汇编编程程序序来来完完成成这这项项工工作作,用用汇汇编编程程序序进进行行汇汇编编就就会会容容易易、快快速速、准准确确,还还能能把把语语法法不不正正确确的的语语句句找找出出来来,利利于于用用户的程序编写和调试。户的程序编写和调试。反反汇汇编编: :将将用
83、用二二进进制制数数表表示示的的机机器器语语言言形形式式的的程程序序翻翻译译成成汇汇编编语语言言形形式式的的源源程程序序的的过过程叫做反汇编。程叫做反汇编。1121414、高级语言、高级语言汇汇编编指指令令虽虽然然较较二二进进制制机机器器指指令令容容易易阅阅读读和和编编写写,但但还还是是不不如如高高级级语语言言更更接接近近英英语语自自然然语语言言。解解决决方方法法是是用用高高级级语语言言编编程程,再再用用某某种种特特殊殊程程序序翻翻译译成机器语言。成机器语言。具具体体地地说说,针针对对某某个个用用户户系系统统用用高高级级语语言言编编写写的的用用户户程程序序翻翻译译成成某某个个具具体体的的微微处处
84、理理器器的的机机器器语语言言程序(这种过程叫做编译)的软件,叫做编译器。程序(这种过程叫做编译)的软件,叫做编译器。现现在在市市面面上上有有各各种种C C编编译译器器,能能把把C C语语言言转转换换成成某某个个具具体体的的微微处处理理器器的的机机器器语语言言。这这种种编编译译器器比比较较适适宜宜于于对对汇汇编编语语言言不不熟熟悉悉的的用用户户使使用用,其其缺缺点点是是不不可可避避免免地地会会出出现现编编译译后后的的机机器器程程序序冗冗长长、不不够够简练,导致程序运行时间长、速度低等问题。简练,导致程序运行时间长、速度低等问题。113另另外外,用用汇汇编编语语言言编编程程能能更更有有利利于于硬硬
85、件件电电路与程序的结合设计与调试。路与程序的结合设计与调试。当当然然,如如果果用用户户并并不不在在乎乎程程序序的的长长短短和和运运行行速速度度的的快快慢慢时时,并并且且拥拥有有对对应应的的编编译译软软件件的的条条件件下下,采采用用由由C C语语言言编编写写,经经编编译译程程序序来来进进行行用用户户系系统统的的设设计计和和开开发发,也也不不失失为一种好方法。为一种好方法。114二、常见技术二、常见技术1 1、冯、冯 诺依曼结构和哈佛结构诺依曼结构和哈佛结构冯冯 诺依曼结构诺依曼结构 19641964年年,冯冯 诺诺依依曼曼简简化化了了计计算算机机的的结结构构,提提出出了了“存存储储程程序序”的的
86、思思想想,大大大大提提高高了了计算机的速度。计算机的速度。115 在在冯冯 诺诺依依曼曼结结构构中中,计计算算机机系系统统由由一一个个中中央央处处理理单单元元(CPUCPU)和和一一个个存存储储器器组组成成,数数据和指令都存储在存储器中,据和指令都存储在存储器中,CPUCPU可以根据所可以根据所给的地址对存储器进行读或写。程序指令和给的地址对存储器进行读或写。程序指令和数据的宽度相同。数据的宽度相同。 Intel Intel 80868086、ARM7ARM7、MIPSMIPS处处理理器器等等是是冯冯 诺依曼结构的典型代表。诺依曼结构的典型代表。 116冯冯 诺依曼结构的构成示意图如图诺依曼结
87、构的构成示意图如图2-122-12所示。所示。图2-12 冯诺依曼结构的构成示意图117 其中,其中,PCPC的全称是的全称是Program CounterProgram Counter,是程,是程序计数器的意思。序计数器的意思。“存储程序存储程序”思想可以简化概括为思想可以简化概括为3 3点:点:计计算算机机包包括括运运算算器器、控控制制器器、存存储储器器、输入输入/ /输出设备。输出设备。计计算算机机内内部部应应采采用用二二进进制制来来表表示示指指令令和和数据。数据。将将编编写写好好的的程程序序和和数数据据保保存存到到存存储储器器,然然后后计计算算机机自自动动地地逐逐条条取取出出指指令令和
88、和数数据据进行分析、处理和执行。进行分析、处理和执行。118哈佛体系结构哈佛体系结构 在在哈哈佛佛体体系系结结构构中中,数数据据和和程程序序使使用用各各自自独独立立的的存存储储器器。程程序序计计数数器器PCPC只只指指向向程程序序存存储储器器而而不不指指向向数数据据存存储储器器,这这样样做做的的后后果果是是很很难难在在哈哈佛佛体体系系结结构构的的计计算算机机上上编编写写出出一一个个自自修修改改的的程程序序( (有有时时称称为为在在应应用用可可编编程,程,In Application ProgrammingIn Application Programming,IAP) IAP) 119哈佛体系结
89、构也具有以下优点:哈佛体系结构也具有以下优点: 独独立立的的程程序序存存储储器器和和数数据据存存储储器器为为数数字字信号处理提供了较高的性能。信号处理提供了较高的性能。指指令令和和数数据据可可以以有有不不同同的的数数据据宽宽度度,具具有有较较高高的的效效率率。如如飞飞思思卡卡尔尔公公司司的的MC68MC68系系列列、ZilogZilog公公司司的的Z8Z8系系列列、ARM ARM 9 9、ARM10ARM10系列等。系列等。120哈佛体系结构的示意图如图哈佛体系结构的示意图如图2-132-13所示。所示。图2-13 哈佛结构的构成示意图1212 2、高速缓冲存储器、高速缓冲存储器CacheCa
90、che 为为了了解解决决微微处处理理器器运运行行速速度度快快,存存储储器器运运行行速速度度慢慢的的矛矛盾盾,在在两两者者之之间间加加一一级级高高速速缓冲器缓冲器CacheCache。 CacheCache采采用用与与制制作作CPUCPU相相同同的的半半导导体体工工艺艺,速度与速度与CPUCPU匹配,其容量约占主存的匹配,其容量约占主存的1%1%左左右。右。122CacheCache的作用的作用 当当CPUCPU要要从从主主存存储储器器( (在在个个人人计计算算机机中中称称为为内内存存) )中中读读取取一一个个数数据据时时,先先在在CacheCache中中查查找找是是否否有有该该数数据据,若若有
91、有,则则立立即即从从CacheCache中中读读取取到到CPUCPU,否否则则用用一一个个主主存存储储器器访访问问时时间间从从主主存存储储器器中中读读取取这这个个数数据据送送CPUCPU,与与此此同同时时将将包包含含这这个个数数据据字字的的整整个个数数据据块块送送到到CacheCache中中,由由于于存存储储器器访访问问具具有有局局部部性性(程程序序执执行行局局部部性性原原理理),在在这这以以后后的的若若干干次次存存储储器器访访问问中中要要读读取取的的数数据据就就位位于于刚刚才才取取到到CacheCache中中的的数数据据块块中中的的可可能能性性很很大大,只只要要替替换换算算法法与与写写入入策
92、策略略得得当当,CacheCache的的命命中中率率可可达达9999以以上上,它它有有效效地地减减少少CPUCPU访访问问低低速速内内存存的的次次数数,从从而而提提高高读读取取数数据据的的速度和整机的性能。速度和整机的性能。123例如:例如:Intel80386 Intel80386 CPUCPU的的高高速速缓缓冲冲存存储储器器在在芯芯片片外外部部,Intel80486 Intel80486 CPUCPU在在片片内内集集成成了了一一个个8KB8KB的的程程序序和和数数据据CacheCache,并并可可以以在在片片外外接接一个二级高速缓存器。一个二级高速缓存器。PentiumPentium在在芯
93、芯片片内内集集成成了了二二个个8KB8KB的的CacheCache,一个作程序缓存,另一个作数据缓存。一个作程序缓存,另一个作数据缓存。1243 3、流水线技术、流水线技术流流水水线线(PipelinePipeline)技技术术是是指指在在程程序序执执行行时时多多条条指指令令重重叠叠进进行行操操作作的的一一种种准准并并行行处处理实现技术。理实现技术。流流水水线线的的工工作作方方式式:就就象象工工业业生生产产中中的的装装配配流流水水线线。在在工工业业制制造造中中采采用用流流水水线线可可以以提提高高单单位位时时间间的的生生产产量量;同同样样在在CPUCPU中中采采用用流水线设计也有助于提高流水线设
94、计也有助于提高CPUCPU的效率。的效率。下下面面以以汽汽车车装装配配为为例例来来解解释释流流水水线线的的工工作作方式。方式。125假设装配一辆汽车需要假设装配一辆汽车需要4 4个步骤:个步骤:(1 1)冲压:制作车身外壳和底盘等部件;)冲压:制作车身外壳和底盘等部件;(2 2)焊接:将冲压成形后的各部件焊接成车;)焊接:将冲压成形后的各部件焊接成车;(3 3)涂涂装装:将将车车身身等等主主要要部部件件清清洗洗、化化学学处处理理、打打磨、喷漆和烘干;磨、喷漆和烘干;(4 4)总装:将各部件组装成车。)总装:将各部件组装成车。 对对应应地地需需要要冲冲压压、焊焊接接、涂涂装装和和总总装装四四个个
95、工工人人。采采用用流流水水线线的的制制造造方方式式,同同一一时时刻刻四四辆辆汽汽车车在在装装配配。如如不不采采用用流流水水线线,那那么么第第一一辆辆汽汽车车依依次次经经过过上上述述四四个个步步骤骤装装配配完完成成之之后后,下下一一辆辆汽汽车车才才开开始始进行装配,同一时刻只有一辆汽车在装配。进行装配,同一时刻只有一辆汽车在装配。126图2-14 4段指令流水线的时空图流流水水线线技技术术可可以以使使用用时时空空图图来来说说明明。时时空空图图从从时时间间和和空空间间两两个个方方面面描描述述了了流流水水线线的的工工作作过过程程。时时空空图图中中,横横坐坐标标代代表表时时间间,纵纵坐坐标标代代表表流
96、流水水线线的的各个段。各个段。4 4段指令流水线的时空图如图段指令流水线的时空图如图2-142-14所示。所示。127流水线是流水线是IntelIntel首次在首次在Intel 486Intel 486芯片中开始使用。芯片中开始使用。在在CPUCPU中中由由5656个个不不同同功功能能的的电电路路单单元元组组成成一一条条指指令令处处理理流流水水线线,然然后后将将一一条条X86X86指指令令分分成成5656步步后后再再由由这这些些电电路路单单元元分分别别执执行行,这这样样就就能能实实现现在在一一个个CPUCPU时时钟钟周周期期完完成成一一条条指指令令,因因此此提提高高CPUCPU的运算速度。的运
97、算速度。在在PentiumPentium中中,采采用用两两条条流流水水线线U U和和V V,每每条条都都有有各各自自独独立立的的地地址址生生成成电电路路ALUALU和和连连接接数数据据CatheCathe的的接接口口,以以便便通通过过各各自自的的数数据据接接口口对对CatheCathe存存取取数数据据。这这样样的的结结构构使使得得PentiumPentium具具有有更更高高的的执执行行速速度度,达达到到一一个个时时钟钟周周期期执执行行两两条条整整数数运运算算的的指指令令,比比具具有有相相同同时时钟钟频频率率的的前前代代CPUCPU的的实实际际速速度提高一倍。度提高一倍。1284 4、CISCC
98、ISC和和RISC RISC 复杂指令集计算机的简称复杂指令集计算机的简称CISCCISC, Complex Instruction Set ComputerComplex Instruction Set Computer复杂指令使用频率较低而造成硬件和资源的浪费。复杂指令使用频率较低而造成硬件和资源的浪费。CISCCISC结结构构的的处处理理器器都都有有一一个个指指令令集集,每每执执行行一一条条指指令令,处处理理器器要要在在几几百百条条指指令令中中分分类类查查找找对对应指令,因此需要一定的时间;应指令,因此需要一定的时间;由由于于指指令令的的复复杂杂,增增加加了了处处理理器器的的结结构构复复
99、杂杂性性以以及及逻逻辑辑电电路路的的级级数数,降降低低了了时时钟钟频频率率,使使指指令令执执行行的的速速度度变变慢慢,纯纯CISCCISC结结构构的的处处理理器器执执行行一条指令至少需要一个以上的时钟周期。一条指令至少需要一个以上的时钟周期。 129RISCRISC,Reduced Instruction Set ComputerReduced Instruction Set Computer 精简指令集计算机的简称精简指令集计算机的简称其指令集结构只有少数简单的指令,使计算机硬其指令集结构只有少数简单的指令,使计算机硬件简化,将件简化,将CPUCPU的时钟频率提高,配合流水线结构的时钟频率提高,配合流水线结构可做到一个时钟周期执行一条指令,使整个系性可做到一个时钟周期执行一条指令,使整个系性能超过能超过CISCCISC结构的计算机。结构的计算机。RISCRISC指令系统的特点是:指令系统的特点是:选取使用频率最高的一些简单指令;选取使用频率最高的一些简单指令;指令长度固定,指令格式和寻址方式种类少;指令长度固定,指令格式和寻址方式种类少;只只有有取取数数据据和和存存数数据据指指令令访访问问存存储储器器,其其余余指指令的操作数在寄存器之间进行。令的操作数在寄存器之间进行。130