微机原理课件_第1页
微机原理课件_第2页
微机原理课件_第3页
微机原理课件_第4页
微机原理课件_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

课程学时:64学时(48理论+16实验)上课时间地点:周二1~2节三教104(3~4节二教101)周五1~2节三教104(3~4节二教101)实验地点:第九实验楼201、213课程简介课程名称:微机原理与接口技术课程性质:必修学习目的:微型计算机系统(Micro-ComputerSystemandApplications)应用与开发(而非使用)的基础。学习方法:勤奋、兴趣、练习(作业、实验)与后续课程关系:单片机原理及应用、计算机控制技术、嵌入式系统开发及应用掌握微机系统的基本组成、工作原理、接口电路及硬件的连接,建立微机系统的概念,具备初步开发微机系统软、硬件的能力。教材杨素行,微型计算机系统原理及应用(第3版),清华大学出版社,2009参考教材1、微机原理与接口技术第二版作者:彭虎电子工业出版社2009年2、80X86/Pentium微机原理与接口技术第二版作者:余春暄机械工业出版社2008年3、微机原理及接口技术第三版作者:龚尚福西安电子科技大学出版社

2005年1.1无符号数的表示及运算1.1.1无符号数的表示及运算1、无符号数的表示法(1)十进制数的表示法十进制计数法的特点是:以10为底,逢10进1,借1当10。需要10个数字符号(基数)0,1,2,…,9。例如:125.6,58,63;十进制的后缀是D,可以省略不写。

(2)二进制数的表示法二进制计数法的特点是:以2为底,逢2进1,借1当2。

需要两个数字符号0,1。二进制的后缀是BB、1100.11011B

八进制数的特点是“逢8进1,借1当8”,需要用到的数字符号为8个,分别是0~7。(大型、巨型机使用较多),后缀为O或Q

例如:13Q、734Q(4)十六进制数的表示方法十六进制数的特点是“逢16进1,借1当16”,需要用到的数字符号为16个,分别是0~9、A~F,后缀为H.

例如:E5AD.BFH、1234H(3)八进制的表示方法其中

为整数部分,为小数部分(1)任意进制数转换为十进制数任意进制数的通式表达:2、数制转换n为整数位数,m为小数位数di为位码ri为位权十进制二进制(2)十进制数与二进制数之间的转换

1)十进制整数转换成二进制整数:方法:除2取余法,结果倒排列。具体做法:将十进制数除以2,得到一个商和一个余数;再将商除以2,又得到一个商和一个余数;继续这一过程,直到商等于0为止。每次得到的余数(必定是0或1)就是对应的二进制数的各位数字。

注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。【例1-1】将十进制数97转换成二进制数。其过程如下:最后结果为:(97)10=(A6A5A4A3A2A1A0)2=(1100001)2余数为0,结束297余数为1,即A0=1482余数为0,即A1=0242余数为0,即A2=0122余数为0,即A3=062余数为0,即A4=0321余数为1,即A5=10余数为1,即A6=122)十进制小数转换成二进制小数方法:乘2取整,结果顺排列。具体做法:用2乘以十进制小数,得到整数和小数部分;再用2乘以小数部分,又得到一个整数和一个小数部分;继续这一过程,直到余下的小数部分为0或满足精度要求为止;最后将每次得到的整数部分(必定是0或1)按先后顺序从左到右排列,即得到所对应的二进制小数。为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,然后再组合起来。例如:(97)10=(1100001)2(0.6875)10=(0.1011)2由此可得:(97.6875)10=(1100001.1011)2十进制与N进制之间的转换规则:整数部分:除N取余,结果倒排序小数部分:乘N取整,结果正排序补充:用降幂法将十进制数转换为二进制数首先写出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它最相近的二进制权值,如够减则减去并在相应位记以1;如不够减则在相应位记以0并跳过此位;如此不断反复,直到该数为0为止。常用二进制权值为:

整数部分:212=4096、211=2048、210=1024、29=512、28=256、27=128、26=64、25=32、24=16、23=8、22=4、21=2、20=1

小数部分:2-1=0.5、2-2=0.25、2-3=0.125、2-4=0.0625、2-5=0.031252112102928272625242322212020481024512256128643216842121921821721621521421321252428826214131072655363276816384819240962-12-22-32-42-50.50.250.1250.06250.03125整数部分小数部分整数部分:小数部分:例1.2(补充)

N=0.8125D,小于此数的二进制权为:0.50.250.1250.06250.03125计算过程如下:0.8125-2-1=0.8125-0.5=0.3125(b1=1)0.3125-2-2=0.3125-0.25=0.0625(b2=1)0.0625-2-3=0.0625-0.125不够减(b3=0)0.0625-2-4=0.0625-0.0625=0(b4=1)

N=0.8125D=0.1101B所以:117.8125=1110101.1101B思考:1028694100等转换成二进制数,体验降幂法的优点1028=10000000100B1024469=1000101B64414100=1000000000100B409641028?69?4100?表1-1十、二、八、十六进制数码的对应关系

十进制二进制八进制十六进制00000001000111200102230011334010044501015560110667011177(3)二进制与八进制、十六进制数之间的转换

【例1-10】直接将二进制数11110.11转换成八进制数。1)二进制数转换成八进制数

方法:从小数点所在位置分别向左或向右每三位一组进行划分。若小数点左侧的位数不是3的整数倍,在数的最左侧补零;若小数点右侧的位数不是3的整数倍,在数的最右侧补零。然后参照表1-1,将每三位二进制数转换成对应的一位八进制数,即为二进制数对应的八进制数。011110.110

36.6

所以:(11110.110)2=(36.6)8

2)八进制数转换二进制数

方法:将每一位八进制数分解成对应的三位二进制数,即为八进制数对应的二进制数。

【例1-11】直接将八进制数35.6转换成二进制数。其过程如下:3 5 .6011101 .110

所以:(35.6)8=(11101.110)2

3)二进制数转换成十六进制数

方法:从小数点所在位置分别向左向右每四位一组进行划分。若小数点左侧的位数不是4的整数倍,在数的最左侧补零;若小数点右侧的位数不是4的整数倍,在数的最右侧补零。然后参照表1-1,将每四位二进制数转换成对应的一位十六进制数,即为二进制数对应的十六进制数。

【例1-12】直接将二进制11110.11转换成十六进制数。11110.11001E.C

所以:(11110.11)2=(1E.C)16110101101101101101.110011101B35B6DCE8=35B6D.CE8H(1)二进制的算术运算:加法规则:减法运算乘法运算0+0=00-0=01*0=00+1=11-1=00*1=01+0=11-0=11*0=01+1=0(进位1)0-1=1(有借位)1*1=13、二进制的运算1)

“与”运算(AND)“与”运算又称逻辑乘,用符号·或∧表示。其运算规则为0·0=00·1=01·0=01·1=1当两个逻辑变量取值均为1时,它们“与”的结果才为1。(2)二进制数的逻辑运算

下面举例说明逻辑运算方法。

例如,X=00F0H,Y=7777H,求X∧Y,X∨Y,X⊕Y。其运算结果如下:00000000111100000111011101110111AND

0000000001110000=0070H00000000111100000111011101110111OR

0111011111110111=77F7H00000000111100000111011101110111XOR0111011110000111=7787H05C3H+3D25H=?05C33D2542E83D25H-05C3H=?3D2505C3_3762按逢16进1的规则进行加法运算+3)十六进制数算术运算:按借1当16的规则进行减法运算1.1.2带符号数的表示及运算日常生活中遇到的数,除上述的无符号数外,还有大量的带符号数。数的符号在计算机中也用二进制数表示,通常用二进制数的最高位表示数的符号,0代表正数,1代表负数。机器数:把一个数及其符号在机器中的表示加以数值化,这样的数称为机器数,

真值:机器数所代表的数称为该机器数的真值。机器数可以用不同方法表示,常用的有原码、反码和补码表示法。1、带符号数的表示方法(1)原码

数x的原码记作[x]原,如机器字长为n,则原码的定义:

原码编码规则:最高位为符号位,正数为0,负数为1,其余n-1位表示数的绝对值。原码表示数的范围为:-(2n-1-1)~+(2n-1-1)n=8:-127~+127n=16:-32767~+32767

在原码的表示中,真值0的原码可表示为两种不同的形式,+0和-0。[x]原=例如,n=8时,[+0]原=00000000,[-0]原=10000000[+1]原=00000001,[-1]原=10000001[+127]原=01111111,[-127]原=11111111[+56]原=00111000。[-56]原=10111000。N=16时

[+1]原=0000000000000001,[-1]原=1000000000000001[+32767]原=0111111111111111,[-32767]原=1111111111111111原码表示法简单直观,但不便于进行加减运算(2)反码数x的反码记作[X]反,如机器字长为n,反码定义为:[x]反=

反码编码规则:最高位为符号位,正数为0,负数为1,正数的反码与原码相同,负数的反码只需将其对应的正数的反码(包括符号位)按位求反即可。反码表示数的范围为:-(2n-1-1)~+(2n-1-1)n=8:-127~+127n=16:-32767~+32767

例如,n=8时,[+0]反=00000000[-0]反=11111111[+1]反=00000001[-1]反=11111110[+127]反=01111111[-127]反=10000000[+56]反=00111000[-56]反=11000111在反码的表示中,真值0的反码也可表示为两种不同的形式,+0和-0:(3)补码数x的补码记作[X]补,如机器字长为n,补码定义为:[x]补=补码表示数的范围为:-2n-1~+(2n-1-1)n=8:-128~+127n=16:-32768~+32767

补码编码规则:最高位为符号位,正数为0,负数为1,正数的补码与它的反码与原码均相同,负数的补码等于它的反码加1,即负数的补码等于其对应正数的补码按位求反(包括符号位)再加1即可。当n=8时,[+0]补=00000000

[-0]

补=00000000

[+1]补=00000001[-1]补=11111111[+127]补=01111111[-127]

补=10000001[+56]补=00111000[-56]补=11001000

①在补码表示法中,0只有一种表示,即000…000。

②对于10000000这个补码编码,其真值被定义为-128。负数的补码等于其对应正数的补码按位求反(包括符号位)再加1

【例1】机器字长n=8位,X=+48D,求[X]补。

首先将+48D转换为二进制数:+110000B。

因为机器字长是8位,其中符号占了1位,所以数值只占7位。将+110000B写成+0110000B,[+48]补=00110000B,写成十六进制数为30H,即[+48]补

=30H。【例2】机器字长n=8位,X=-48D,求[X]补。[+48]补=00110000B

11001111

+1

11010000[-48]补=11010000B=D0H

【例3】机器字长n=16位,X=+48D,求[X]补

+48D转换为二进制数:+110000B。

因为机器字长是16位,其中符号占了1位,所以数值占15位。将+110000B写成+000000000110000B。[+48]补

=0000000000110000B,用十六进制数为:

[+48]补=0030H。[+48]补=00110000B=30H用8位数表示时符号位扩展

【例4】

机器字长n=16位,X=-48D,求[X]补。

48D转换为二进制数:110000B。

因为机器字长是16位,其中符号占了1位,所以数值占15位。将110000B写成000000000110000B。[+48]原码

0000000001100000B连同符号位按位求反:1111111111001111B末位加1+1

所以[-48]补

=1111111111010000B写成十六进制数为0FFD0H,即[-48]补

=0FFD0H。[-48]补

=

11010000B=0D0H用8位数表示时符号位扩展补码数要扩展时,正数是在符号的前面补0,负数是在符号的前面补1。补码数扩展实际上是符号扩展。表1.1原码、反码和补码表无符号数二进制数带符号数原码补码反码000000000+0+0+0100000001+1+1+1200000010+2+2+2….……..…..…..…..12601111110+126+126+12612701111111+127+127+12712810000000-0-128-12712910000001-1-127-126…..………..…..….25311111101-125-3-225411111110-126-2-125511111111-127-1-02.真值与补码之间的转换(1)真值补码(2)补码真值已知补码求真值的方法:当机器数的最高位(符号位)为0时,表示真值是正数,其值等于其余n-1位的值;当机器数的最高位(符号位)为1时,表示真值是负数,其值等于其余n-1位按位取反后末位加1的值。【例1】求以下补码的真值①[x]补=01111110求x②[x]补=10000010求x解:①

[x]补=01111110符号位为0,是正数,真值=126②[x]补=10000010符号位是1,是负数0000010按位取反1111101末位加1+1

1111110真值为-1263.补码的运算(1)补码的加法:

[X+Y]补

=[X]补

+[Y]补已知:[+51]补=00110011[+66]补=01000010[-51]补=11001101[-66]补=1011

1110

+66

+)+51+117②+66

+)-51+1501000010=[+66]补

+)00110011=[+51]补01110101=[+117]补01000010=[+66]补

+)11001101=[-51]补

100001111=[+15]补③-66

+)+51-15已知:[+51]补=00110011[+66]补=01000010[-51]补=11001101[-66]补=1011

111010111110=[-66]补

+)00110011=[+51]补11110001=[-15]补④-66

+)-51-117不论被加数、加数是正数还是负数,只要直接用它们的补码(包括符号位)相加,当结果不超出补码表示范围时,运算结果是正确的补码。②、④中由最高位向更高位的进位由于机器字长的限制而自动丢失,不会影响运算结果的正确性。10111110=[-66]补

+)11001101=[-51]补

110001011=[-117]补(2)补码减法[X-Y]补=[X]补+[-Y]补已知:[+51]补=00110011[+66]补=01000010[-51]补=11001101[-66]补=1011

1110①+66

-)+51+1501000010=[+66]补

+)11001101=[-51]补

100001111=[+15]补②+66

-)-51+11701000010=[+66]补

+)00110011=[+51]补01110101=[+117]补[X-Y]补=[X]补+[-Y]补已知:[+51]补=00110011[+66]补=01000010[-51]补=11001101[-66]补=1011

1110③+51

-)+66-1500110011=[+51]补

+)10111110=[-66]补11110001=[-15]补④-51

-)-66+1511001101=[-51]补

+)01000010=[+66]补

100001111=[+15]补无论被减数、减数是正数还是负数,上述补码减法的规则是正确的。在计算机中,利用这个规则,通过对减数进行求补运算而将减法变成加法。例①和④中由最高位向更高位的进位同样会自动消失而不影响运算结果的正确性。公式成立前提条件:运算结果不能超出机器数所能表示的范围,否则运算结果不正确。设机器字长为8位,则-128≤N≤+127。计算(+64)+(+65)。结果是错误的。究其原因是:(+64)+(+65)=+129>+127,超出了字长为8位所能表示的最大值,产生了“溢出”,所以结果值出错。[X+Y]补

=[X]补

+[Y]补[X-Y]补

=[X]补

+[-Y]补(+64)+(+65)+(129)01000000+)0100000110000001→-127、计算(-125)+(-10)。

-125 10000011+)-10

+) 11110110-135 101111001→+121计算结果错误,其原因是:(-125)+(-10)=-135<-128,超出了字长为8位所能表示的最小值,产生了“溢出”,所以结果出错。在补码运算时,要注意溢出问题,它与进位不同。溢出就是运算的结果超出了所能表示的范围,使得数据侵占了符号位,判断溢出的方法有如下两种:①双进位法:2个进位位分别为次高位向最高位的进位和最高位向进位位的进位。如果两个进位均有或均无则无溢出,如果两个进位中1个有进位而另一个无进位则一定有溢出。②符号判断法:同号相减无溢出,同号相加时结果符号与加数符号相反有溢出,相同则无溢出。异号相加无溢出,异号相减时结果符号与减数符号相同时有溢出,相反则无溢出。

-125 10000011+)-10

+) 11110110-135 101111001→+121把数的8位表示扩大为16位表示:1111111110000011+)11111111

111101101000000010000110+)11000000010000111=-135结果正确溢出的解决办法:扩大数据位数:结果错误采用补码运算后,运算结果也是补码,欲得运算结果的真值,还需进行转换。

1

1111111101111001验证计算机中的带符号数用补码表示的优点:(1)负数的补码与对应正数的补码之间的转换可以用同一方法——求补运算实现,因而可简化硬件。(2)可以将减法变为加法运算,从而省去了减法器。(3)无符号数及带符号数的加法运算可用同一电路完成,结果都是正确的。例如,计算机中有两个数分别为11110001及00001100,无论它们代表无符号数还是带符号数,运算结果都是正确的。11110011+)0000110011111101看作无符号数看作有符号数

241+12253[-15]补+[+12]补[-3]补1.1.3二进制编码

BCD编码的特点是:这4个二进制码之间满足二进制规则,而十进制数位之间是十进制计数规则。因此这种编码实质上是二进制编码的十进制数(BinaryCodedDecimal),因此简称BCD码或二—十进制码。表1-3BCD码表十进制数码01234567898421码00000001001000110100010101100111100010011.二进制编码的十进制数(BCD码)(1)压缩BCD码压缩BCD码的每1位十进制数用4位二进制编码,1个字节表示2位十进制数例如:96D=10010110BCD(2)非压缩BCD码非压缩BCD码用1个字节表示1位十进制数,高4位总是0,低4位表示数值(0~9)例如:8D=00001000BCD表1.2BCD码表十进制数压缩BCD非压缩BCD000000000000000001000000010000000120000001000000010….…………900001001000010011000010000000000010000000011000100010000000100000001…..…..…..

【例1】将十进制数67.9转换成压缩BCD码。其过程如下:

67.901100111.1001所以:(67.9)10=(01100111.1001)BCD

【例2】将BCD码10010110.0110转换成十进制数

10010110.01109 6. 6所以:(10010110.0110)BCD=(96.6)102、字母和字符的编码计算机处理的信息除了数字之外还需要处理字母、符号等,例如键盘输入及打印机、CRT输出的信息大部分是字符。计算机中的字符也必须采用二进制编码的形式。编码有多种,微型计算机中普遍采用的是ASCII(AmericanStandardCodeforInformationInterchange)码,即美国标准信息交换代码。ASCII码用8位二进制对字符进行编码。表1-4ASCII字符编码B6B5B4

B3B2B1B0000(0)001(1)010(2)011(3)100(4)101(5)110(6)111(7)0000

(0)NULDLESP0@P`p0001

(1)SOHDC1!1AQaq0010

(2)STXDC2″2BRbr0011

(3)ETXDC3#3CScs0100

(4)EOTDC4$4DTdt0101

(5)ENQNAK%5EUeu0110

(6)ACKSYN&6FVfv0111

(7)BELETB׳7GWgw1000

(8)BSCAN(8HXhx1001

(9)HTEM)9IYiy1010

(A)LFSUB*:JZjz1011

(B)VTESC+;K[k{1100

(C)FFFS,<L\l|1101

(D)CRGS-=M]m}1110

(E)SORS.>N^n~1111

(F)SIUS/?O_oDELNUL空SOH标题开始STX正文结束ETX本文结束EOT传输结束ENQ询问ACK承认BEL报警符BS退格HT横向列表LF换行VT垂直制表FF走纸控制CR回车SO移位输出SI移位输入SP空格DLE数据链换码DC1设备控制1DC2设备控制2DC3设备控制3DC4设备控制4NAK否定SYN空转同步ETB信息组传送结束CAN作废EM纸尽SUB减ESC换码FS分隔符GS组分隔符RS记录分隔符US单元分隔符DEL作废

ASCII码表有以下几个特点:

(1)

每个字符用7位二进制码表示,其排列次序为:

B6

B5

B4

B3

B2B1

B0。

温馨提示

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

评论

0/150

提交评论