《最新原理幻灯片》由会员分享,可在线阅读,更多相关《最新原理幻灯片(75页珍藏版)》请在金锄头文库上搜索。
1、原理课程目标课程目标微机原理是学习和掌握微机硬件知识和汇编语言程序设计的入门课程:F微型计算机的基本工作原理F汇编语言程序设计F微型计算机接口技术建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力。21.2 常用计数制常用计数制l了解了解l 特点;l 表示方法;l 相互间的转换。9一、常用计数法一、常用计数法 l十进制十进制符合人们的习惯符合人们的习惯l二进制二进制便于物理实现便于物理实现l十六进制十六进制便于识别、书写便于识别、书写l八进制八进制103135二进制、八进制、十进制、十六进制,都是进位计数制:即按进位的原则进位的原则进行记数。共同的特点:都使用位置表示法两个要素:位
2、权,基数数制中每一固定位置对应的单位值称为“位权”用基数表示数制;111.十进制十进制特点:以十为基数,逢十进一;特点:以十为基数,逢十进一; 共共有有0 0- -9 9十个数十个数字符号字符号。表示:表示:3436.12 =3*104-1+4*104-2+3*104-3+6*104-4+1*10-1+2*10-2权表达式权表达式122.二进制二进制特点:以特点:以2为为基数基数,逢,逢2进一;进一;只有只有0和和1两个符号。两个符号。表示:表示:133.十六进制十六进制特点:以特点:以16为为基数基数,逢,逢16进一;进一; 有0-9及A-F共16个数字符号。表示:表示:14例例1:(:(1
3、101101.0101)B126125024123122021120021122023124(109.3125)D例例3:(:(3AF.2A)H31621016115160216110162(943.1640625)D15进位计数制的一般表示进位计数制的一般表示一般地,对任意一个一般地,对任意一个K进制数进制数S都可表示为都可表示为 :其中:Si-S的第i位数码,可以是K个符号中任何一个;n,m- 含义同前;K - 基数;Ki - K进制数的权16二、各进制数间的转换二、各进制数间的转换1.非十进制数非十进制数转换为转换为十进制数十进制数按相应按相应进位计数制的权表达式展开,进位计数制的权表达
4、式展开,再按十进制求和。再按十进制求和。 例:例:10110010B10110010B = (?)= (?)1010 13FAH13FAH = (?)= (?)1010172.十进制到非十进制数的转换十进制到非十进制数的转换l十进制十进制 二进制的转换:二进制的转换:整数部分:除整数部分:除2取余;取余;小数部分:乘小数部分:乘2取整。取整。l十进制十进制 十六进制的转换:十六进制的转换:整数部分:除整数部分:除16取余;取余;小数部分:乘小数部分:乘16取整。取整。以小数点为开始点求得整数和小数的各个位。以小数点为开始点求得整数和小数的各个位。18 十进制数转换成二进制数十进制数转换成二进制
5、数1 1、整数转换:除整数转换:除2 2取余法。取余法。 除除2 2取余直到商是取余直到商是0 0或或1 1为止为止, ,第一个余数是二第一个余数是二进制数的最低位。进制数的最低位。2 2、小数转换:、小数转换: 乘乘2 2取整法。取整法。 乘乘2 2取整数直到小数部分为取整数直到小数部分为0 0或达到要求的精或达到要求的精度为止,首次取得的整数最左。度为止,首次取得的整数最左。3 3、整数和小数部分合并在一起。、整数和小数部分合并在一起。例如:将(112.25)D转换为二进制数;1110000.01B193.二进制与十六进制间的转换二进制与十六进制间的转换l用用4位二进制数表示位二进制数表示
6、1位十六进制数位十六进制数例:例: 10110001001.110 = (?)H0101 1000 1001.1100 5 8 9 . C201.3二进制数的运算二进制数的运算无符号数无符号数算术运算算术运算有符号数有符号数逻辑运算逻辑运算211、二进制数的算术运算、二进制数的算术运算加法运算:加法运算:0+0=0,0+1=1,1+0=1,1+1=0减法运算:减法运算:0-0=0,0-1=1,1-0=1,1-1=0乘法运算:乘法运算:0x0=0,0x1=0,1x0=0,1x1=11100Bx1001B=?除法运算:转换为减法和右移位运算除法运算:转换为减法和右移位运算100100001100=
7、?若乘数位为0,则中间结果加0;若乘数位为1,则照抄被乘数,在与中间结果相加时要将被乘数的最低位与相应的乘数位对齐;22移位加移位加1100Bx1001B=?被乘数部分积l乘数乘数100111000000乘数为1:部分积加被乘数;将被乘数左移1位;乘数为0:部分积不加被乘数;被乘数左移1位;乘数为0;部分积不加被乘数;被乘数左移1位;乘数为1:部分积加被乘数;110001100110000 11000001100000 1100+1100000 1101100乘法运算转换为加法和左移位的运算除法运算转换为减法和右移位的运算23规则规则l加法:加法:1+1=0(有进位)(有进位),l减法:减法:
8、0-1=1(有借位)(有借位),l乘法:乘法:,乘以乘以2相当于左移一位;相当于左移一位;除法:除法:,除以除以2则相当于右移则相当于右移1位。位。例:例:001011100000010=?00101110/ /00000010=?242、无符号数的表示范围无符号数的表示范围 一个一个n位的无符号二进制数位的无符号二进制数X,其表示范围为,其表示范围为0X2n-1若运算结果超出这个范围,则产生溢出。若运算结果超出这个范围,则产生溢出。l无符号无符号二进制数的溢出判断:加减二进制数的溢出判断:加减运算时,运算时,当最高位当最高位DiDi向更高位有进位向更高位有进位CiCi(或借位)时(或借位)时
9、, ,即即Ci=1Ci=1则产生溢出。则产生溢出。25例例: 1011011110110111183183 + 01001101+ 010011017777 1 1 00000100 000001004 4结果超出位(最高位有进位),发生溢出。结果超出位(最高位有进位),发生溢出。(结果为(结果为256256,超出位二进制数所能表示,超出位二进制数所能表示的范围的范围255255) 263、逻辑运算逻辑运算l与与()、或、或()、非、非()、异或、异或()l特点:按位运算,无进借位特点:按位运算,无进借位l运算规则运算规则.271、“与与”运算运算1 1=1,1 0=0,0 1=0,0 0=0
10、计算计算10110110B 10010011B=?2、“或或”运算:运算: 0 0=0,0 1=1,1 0=1,1 1=1计算计算11011001B 10010110B=?283、“非非”运算:按位取反运算:按位取反计算计算(11011001B)=?4、“异或异或”运算:相异为运算:相异为1,相同为,相同为0,0 0=0,1 1=0,0 1=1,1 0=1计算计算 11010011B 10100110B=?294.逻辑门逻辑门掌握:掌握:l与、或、非门逻辑符号和逻辑关系与、或、非门逻辑符号和逻辑关系(真值表);(真值表);l与非门、或非门的应用。与非门、或非门的应用。30与门(与门(ANDGa
11、te)A B=YABY000010100111&ABYA BY含义:仅当含义:仅当A A和和B B都是高电平时,都是高电平时,输出输出Y Y才是高电平;才是高电平;受低电平控受低电平控制,只要将任意输入制,只要将任意输入端接低电平端接低电平时,该与门就被封锁,输出低电时,该与门就被封锁,输出低电平;平;31或门或门AB=YABY000011101111YAB11A B国际符号Y特点:受特点:受高电平高电平控制,控制,只要将任意输入端接高电平时,只要将任意输入端接高电平时,该或门就被封锁,输出高电平。该或门就被封锁,输出高电平。32非门(非门(NOTGate)1AYY=AAY0110AY33异或
12、门(异或门(exclusiveORGate)AB=YYABABY000011101110“异或”门电路是实现二进制加法的逻辑门电路,也叫半加器。它是ALU部件的基本电路。34“与非与非”门电路门电路l由由“与与”门电路和门电路和“非非”门电路组合而成的电路。门电路组合而成的电路。l逻辑规则是:只有当全部输入端均为逻辑逻辑规则是:只有当全部输入端均为逻辑1 1时,输出时,输出才为逻辑才为逻辑0 0,否则输出为逻辑,否则输出为逻辑1 1。l逻辑功能:逻辑功能:Y=A Y=A B Bl逻辑符号:逻辑符号:l“与非与非”门真值表:门真值表:A BY 输入 输出A BY0 0 10 111 0121 1
13、035“或非或非”门电路门电路l由由“或或”门电路和门电路和“非非”门电路组合而成的电路。门电路组合而成的电路。l逻辑规则是:当一个或多个输入端为逻辑逻辑规则是:当一个或多个输入端为逻辑1 1时,输出为逻辑时,输出为逻辑0 0,只有当全部输入端均为逻辑,只有当全部输入端均为逻辑0 0时,输出才为逻辑时,输出才为逻辑1 1。l逻辑功能:逻辑功能:Y=A Y=A B Bl逻辑符号:逻辑符号:l“或非或非”门真值表:门真值表:A BY 输入 输出A BY0 0 10 101 001 10YAB11365.译码器译码器74LS138译码器:译码器:G1G2AG2BCBAY0Y7 译码输出译码输出译码输
14、入译码输入译码使能译码使能3774LS138真值表真值表使 能 端输 入 端输 出 端G1G2AG2BCBA Y0Y1Y2Y3Y4Y5Y6Y70 11 01 10 1 0 01 0 01 0 01 0 01 0 01 0 01 0 01 0 0 0 0 00 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 10 11 1 1 1 1 1 1 0 11 1 1 1 1 11 0 11 1 1 1 11 1 0 11 1 1 1111 0 11 1 1
15、1 111 0 1 1 1 1 1 1 11 0 1 1 1 1 1 11 1 0 38ABC 3:8译码器译码器输输出出端端38译码器Y0Y3Y4Y5Y6Y7Y1Y2G1G2AG2B (AB)=A+B391.4带符号二进制数的表示及运算带符号二进制数的表示及运算l计算机中有符号数的表示计算机中有符号数的表示l把二进制数的把二进制数的最高位最高位定义为符号位定义为符号位符号位为符号位为0表示表示正数正数,符号位为,符号位为1表示表示负数负数把符号数值化了的数,称为机器数。l机器数所表示的真实的数值,称为机器数所表示的真实的数值,称为真值真值。(在以下讲述中,均以位二进制数为例)40例例:+52
16、=+0110100=00110100符号位数值位符号位数值位-52=-0110100=10110100真值真值机器数机器数411.带符号数的表示方法带符号数的表示方法l对于带符号数,常用的表示方法有对于带符号数,常用的表示方法有原码原码、反码反码和和补码补码三种。数三种。数X的原码的原码记作记作 X 原原,反码记作,反码记作 X 反反,补码记,补码记作作 X 补补。注意:对正数,三种表示法均相同。注意:对正数,三种表示法均相同。 它们的差别在于对负数的表示。它们的差别在于对负数的表示。42原码原码X原原码:原码:最高位为符号位,数值部分为最高位为符号位,数值部分为原数的绝对值。原数的绝对值。已
17、知真值X=+42,Y=-42,求X原和Y原X原 =00101010BY原 =10101010BX原43原码的例子原码的例子真值X=+18=+0010010X=-18=-0010010原码X原 =0 0010010X原 =1 0010010符号符号位n位原码表示数值的范围是位原码表示数值的范围是对应的原码是对应的原码是1111 0111。44数数0的原码的原码l8位数位数0的原码:的原码:+0=00000000-0=10000000即:数即:数0的原码不唯一。的原码不唯一。优点:数的真值和原码表示之间的对应关系简单,相互转化容易。用原码实现乘除运算规则简单。缺点:数值0有两个编码值,+0和-0,
18、不利于运算。 尤其是加减运算。 +0原=00000000B -0原=10000000B45反码反码X反正数的反码和原码相同;负数的反码是对其原正数的反码和原码相同;负数的反码是对其原码除符号位外的逐位求反。码除符号位外的逐位求反。l真值真值X X的反码记为的反码记为 XX反反 XX反反46例例:lX=-52=-0110100X原原=10110100X反反=1100101147反码的例子反码的例子真值X=+18=+0010010X=-18=-0010010反码X反 =0 0010010X反 =1 1101101符号符号位n位反码表示数值的范围是位反码表示数值的范围是:480的反码:的反码:+0反
19、反=00000000-0反反=11111111即:数即:数0的反码也不是唯一的。的反码也不是唯一的。49补码补码补码:正数的补码和原码相同,负数的补码是正数的补码和原码相同,负数的补码是在其反码的基础上加在其反码的基础上加1。已知真值已知真值X=+0110100BX=+0110100B,Y=-0110100BY=-0110100B求求 XX补补和和 YY补补 XX补补=00110100=00110100B BYY补补= = YY反反 +1=11001011+1=11001011B+1=11001100BB+1=11001100B50例例:lX=52=0110100X原原=10110100X反反
20、=11001011X补补=X反反+1=11001100n位补码表示数值的范围是位补码表示数值的范围是:510的补码:的补码:l+0补补=+0原原=00000000l-0补补=-0反反+1=11111111+1=100000000 对对8 8位字长,进位被舍掉位字长,进位被舍掉l+0补补=-0补补=0000000052特殊数特殊数10000000l该数在原码中定义为:该数在原码中定义为:-0l在反码中定义为:在反码中定义为:-127l在补码中定义为:在补码中定义为:-128l对无符号数:对无符号数:(10000000)=128538位位C数的表示范围:数的表示范围:l对对8位有符号二进制数:位有
21、符号二进制数:l原码: -127 +127l反码: -127 +127l补码: -128 +127l想一想:想一想:16位有符号数的表示范围是多少?位有符号数的表示范围是多少?542.有符号二进制数与十进制的转换有符号二进制数与十进制的转换l将一个用补码表示的二进制数转换为十进制数。将一个用补码表示的二进制数转换为十进制数。1)X补补=00101110B真值为:真值为:+0101110B正数正数所以:所以:X=+462)X补补=11010010B负数负数X=X补补补补=11010010补补=-0101110B所以:所以:X=-46553补码运算补码运算l在计算机中,二进制数的四则运算是补码运算
22、,在计算机中,二进制数的四则运算是补码运算,结果是补码。结果是补码。l补码运算的规则如下:补码运算的规则如下: X+YX+Y补补=XX补补+YY补补 X-YX-Y补补=XX补补-YY补补 X-YX-Y补补=XX补补+-+-YY补补-YY补补= =对对 YY补补的每一位包括符号位在内,按的每一位包括符号位在内,按位取反并加一;位取反并加一;56例例:lX=-0110100,Y=+1110100,求求X+Y补补lX原原=10110100lX补补=X反反+1=11001100lY补补=Y原原=01110100l所以:所以:X+Y补补=X补补+Y补补=11001100+01110100=0100000
23、0-52+116=6457例:例:l设设X=+66X=+66,Y=+51Y=+51,求求 X-YX-Y补补= =?根据根据 X-YX-Y补补 = =XX补补+-+-YY补补 首先求首先求X=+1000010BX=+1000010B, XX补补=01000010=01000010Y=+110011BY=+110011B,YY补补=00110011 =00110011 -Y-Y补补=11001101=11001101所以所以 X-YX-Y补补= 01000010= 01000010 +11001101 +11001101 1 00001111 1 00001111B B在字长为8位的机器中,该进位
24、自然丢失。-Y=-51=-110011B,-Y补=11001101584.符号数运算中的溢出问题符号数运算中的溢出问题8 8位带符号二进制数的取值范围:位带符号二进制数的取值范围:原码原码 (-127+127-127+127)反码反码 (-127+127-127+127)补码补码 (-128+127-128+127)十六位十六位带符号二进制带符号二进制数的取值范围:数的取值范围:原码原码 (- 32767 + 32767 - 32767 + 32767 )反码反码 (- 32767 + 32767 - 32767 + 32767 )补码补码 (- 32768+ 32767 - 32768+ 3
25、2767 )当二进制数的运算结果超出以上范围时,就会产生溢当二进制数的运算结果超出以上范围时,就会产生溢出。出。59溢溢 出出l同号相减或异号相加不会溢出。l同号相加或异号相减可能溢出:l两种情况:两种情况:同号相加时,结果符号与加数符号相反溢出;异号相减时,结果符号与减数符号相同溢出。运算结果超出计算机部件所容纳的数值范围,运算结果超出计算机部件所容纳的数值范围,数值部分上扩充到符号位、改变了符号的性数值部分上扩充到符号位、改变了符号的性质、导致运算结果错误。质、导致运算结果错误。60例例: 0 1 0 0 1 0 0 0 + + 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1
26、0 0 1 0 0 1 0 0 0 + + 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 + + 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1CASE1:72-(-98)=?CASE2:72+98=?CASE3:-(83)-(+80)=?61例例2727用二进制补码计算(用二进制补码计算(-83-83)+ +(-80-80)= =(?)(?)解:解: (-83-83)1010=-1010011=-1010011B B, (-83) (-83)补补=10101101=10101101(-80-80)1010=-1010000
27、=-1010000B B,(-80)(-80)补补=10110000=101100001010 1 10 11010 1 10 1 + 101 1 0000 + 101 1 00001 0101110 1=93C C6 6=0=0,C C7 7=1; =1; 自然丢失62如何判断溢出如何判断溢出1.1.如果次高位如果次高位D D6 6向最高位向最高位D D7 7有进位有进位C C6 6 =1 =1,而最高位而最高位D D7 7向前无进位向前无进位C C7 7 =0 =0,则结果发生溢出;则结果发生溢出;2.2.反过来,如果次高位反过来,如果次高位D D6 6向最高位向最高位D D7 7无进位无
28、进位C C6 6 =0 =0,而而最高位最高位D D7 7向前有进位向前有进位C C7 7 =1 =1,则结果也发生溢出;则结果也发生溢出;Ci-1 Ci-2=1利用利用CPUCPU中状态标志寄存器中的溢出标志位中状态标志寄存器中的溢出标志位OFOF来判断来判断: :OF=1,OF=1,溢出;溢出;OF=0 OF=0 无溢出。无溢出。631.5二进制编码二进制编码1、十进制数的表示、十进制数的表示BCD码l用用4 4位二进制数表示一位十进制数。位二进制数表示一位十进制数。(387.24)D=(0011 1000 0111.0010 0100)BCDl有两种表示法:压缩有两种表示法:压缩BCDB
29、CD码和非压缩码和非压缩BCDBCD码。码。l压缩压缩BCDBCD码的一个字节表示两位十进制数。码的一个字节表示两位十进制数。l非压缩非压缩BCDBCD码用一个字节表示一位十进制数,码用一个字节表示一位十进制数,高高4 4位总是位总是00000000,低,低4 4位位0000100100001001表示表示0909。64二进制数转换为BCD码例如:1、将(0001 0001.0010 0101) BCD转换为二进制数。2、将二进制数00010001转换为BCD码。652、非数值数据的表示、非数值数据的表示l计算机中除了能够处理数值数据以外,还可以处理文字、语音、图像等各种信息,这些信息统称为非
30、数值数据。l非数值数据在计算机中也必须以二进制形式二进制形式表示,非数值数据的表示本质上是编码的过程。66ASCII码美国标准信息交换代码美国标准信息交换代码67ASCII码码l采用采用7位二进制代码对字符进行编码位二进制代码对字符进行编码l数字数字09的编码是的编码是01100000111001,它们的高,它们的高3位均位均是是011,后,后4位正好与其对应的二进制代码(位正好与其对应的二进制代码(BCD码)码)相符。相符。l英文字母英文字母AZ的的ASCII码从码从1000001(41H)开始顺序)开始顺序递增,字母递增,字母az的的ASCII码从码从1100001(61H)开始顺)开始顺
31、序递增,这样的排列对信息检索十分有利。序递增,这样的排列对信息检索十分有利。l最高位通常总为最高位通常总为0,有时也用作奇偶校验位。,有时也用作奇偶校验位。68作业作业l第一章第一章习题习题(p25p26)l1.3l1.4l1.5l1.6l1.7l1.8l1.969例1:设机器字长8位,分别写出37和37的补码,并用16 进制表示。解: + 37= + 010 0101 +37补=0 010 0101=25H 37=010 0101 -37补=11 0110 11=DBH 例2:设机器字长为8位,试分别写出0.375和0.6875的原码 解: +0.375=0.25 + 0.125=2-2 +
32、 2-3=0.011 +0.375原=0.011 0000 0.6875=(0.5 + 0.125 + 0.0625)=0.1011 0.6875原=1.101100070例4:设X19/128,字长8位(含符号位) 求X原?X补?解: X原0001 0011/1000 00000.0010011 X补 0.0010011 2771三、计算机中常用术语三、计算机中常用术语lbitl1Mb=1024 1024bit=220bitl1Gb=230bit=1024Mbl1Tb=240bit=1024GblBytel1Byte=8bit,1KB=1024BytelWord:表示字长,有表示字长,有1b
33、it,4bit,8bit,16bit等等一般情况下为一般情况下为2Byte(16bit)72结束语:结束语:l第第1章难点:章难点:补码的概念及其运算补码的概念及其运算73补码的运算原理补码的运算原理模模(module)就就是是一一个个计计数数系系统统的的最最大大容容量量,其其大大小小等等于于以以进进位位计计数数制制基基数数为为底底,以以位位数数为为指指数数的的幂幂。凡凡是是用用器器件件进进行行的的运运算算都都是是有有模模运运算算,运运算算结结果果超超过过模模的的部部分分被被运运算器自动丢弃。因此,当算器自动丢弃。因此,当器件为器件为n位时,有位时,有X=2n+X(mod2n)不难验证,不难验证,X补补=2n+X(mod2n)因此,因此,X Y补补=2n+(X Y)(mod2n)=(2n+X)+(2n+X)(mod2n)=X补补+ Y补补74结束语结束语谢谢大家聆听!谢谢大家聆听!75