1、微型计算机原理与接口技术,主讲人:黄颖(讲师) 联系方式:62477038 考试成绩:70(考试成绩)30(平时成绩),使用教材: 课程的主要内容1.基础理论2.指令系统3.汇编语言程序设计4.实际应用5.硬件知识,课程简介及要求,1课程性质及教学目的微机原理与接口技术是工科计算机及其相关专业的一门重要的专业技术基础课程。本课程旨在介绍以Intel 80486为背景的32位微型计算机的工作原理、汇编语言程序设计和接口技术。本课程既向学生传授计算机的各部分组成、CPU及各个接口工作原理,也注重培养学生编写汇编程序、使用各个接口芯片的动手实践能力。 2.本课程的学习方法编程和理论学习相结合,1.
2、1 计算机中的数制 1.2 计算机中的码制 1.3 浮点数基本概念 本章需要掌握的内容 1. 计算机中的数制:二进制、八进制、十六进制之间的相互转换,以及他们与十进制的转换 2计算机中的码制:原码、补码、反码的表示,以及各自的表示范围,补码的加法与减法及其溢出判别方法 3浮点数的基本概念:浮点数、浮点机器数、浮点数的数值范围,第1章 数制与码制,1.1 计算机中的数制,1.1.1 常用计数制 数:用来直接表征量的多少,有大小之分,并能进行加减运算 码:代码或者编码,在计算机中用来代表某个事物或描述某种信息。 1)十进制数 在十进制记数中,用0,1,2,9这10个符号来表示数量,无论多大的数,都
3、是用这10个符号的组合来表示的。 “逢十进一,借一当十” 例如,十进制数3758可用上面的法则来表示: (3758)10=3103+7102+5101+8100,根据同样的法则,也可以表示十进制小数,小数点的右边各位的权为10-1,10-2,10-3,。例如,十进制数275.368可以用上述法则写成: (275.368)10=2102+7101+5100+310-1+610-2+810-3 高位权是低位权的十倍,2)二进制数二进制记数法用来表示数量的符号只有两个,就是0和1。二进制数中的任何一个0或1称为比特(bit)。 “逢二进一,借一当二” 3)十六进制数 0-9+A-F “逢十六进一,借
4、一当十六” 4)八进制记数法 高位权是低位权的八倍 “逢八进一,借一当八” 5)二十进制数(BCD码) 计算机中的十进制的表示方法,常用8421BCD码,见表1.1,表1.1 BCD码与其它数制的对应关系,1.1.2 数制转换(重点),(1)任意进制数十进制数 1. 二进制数转换成十进制数 如上所述,只要将二进制数的每一位乘上它的权然后加起来就可以求得二进制数的十进制数值。例如,二进制数101101.11换算成十进制数为 (101101.11)2=125+024+123+122+021+120+12-1+12-2 =(45.75)10 2.八进制数转换成十进制数 例如,八进制数372.01,根
5、据各位的权不同可以写成: (372.01)8=382+781+280+08-1+18-2 将上式中各位与其权相乘而后加到一起,就可以得到八进制数372.01的十进制数为 (372.01)8=(250.015625)10,3.十六进制数转换成十进制数例如,十六进制数E5D7.A3可以表示为 (E5D7.A3) 16 =E16 3+516 2+D16 1+716 0+A16 -1+316 -2,(2)十进制数转换成二进制数 例如,欲将十进制数175转换为二进制数,其过程如下:1752=87 余数为 1872=43 1 432=21 1 212=10 1 102=5 0 52=2 1 22=1 0
6、12=0 1得到结果:(175) 10=(10101111) 2。,例如,将十进制小数0.71875转换成二进制小数,其过程如下:0.718752=1.4375 整数部分 1 0.43752=0.875 0 0.8752=1.75 1 0.752=1.5 1 0.52=1.0 1 于是,得到结果为: (0.71875)10=(0.10111)2。,综上所述,一个十进制整数的二进制转换方法就是“除2取余”;而一个十进制小数的二进制转换方法就是“乘2取整”。若一个十进制数既包含整数部分又包含小数部分,它的二进制转换就是将它的整数部分和小数部分用上述方法分别进行转换,最后将转换好的两部分结合在一起形
7、成要转换的二进制数,例如,(175.71875) 10=(10101111.10111)2,(3)二进制数转换成十六进制数 由于一位十六进制数可以用四位二进制数来表示,因此二进制数与十六进制数的相互转换就比较容易。二进制数到十六进制数的转换是由小数点开始,每四位二进制数为一组,将每一组用相应的一位十六进制数来表示,即可得到正确的十六进制数,例如:(1 1101 0100 1011 0111 . 0101 1110 1010)2= (1 D 4 B 7 . 5 E A)16= 1D4B7.5EAH 八进制(O)十六进制(H)十进制 (D或者空)二进制数(B),1.1.3 字符的编码,ASCII码
8、是美国标准信息交换码的简称,现在为各国所广泛采用。 通常,ASCII码由7位二进制编码来表示,用于微处理机与它的外部设备之间进行数据交换以及通过无线或有线进行数据传送。 代表上述字符或控制功能的ASCII码是由一个4位组和一个3位组构成的,形成7位二进制编码,其格式为,4位组,3位组,根据ASCII码的构成格式,可以很方便地从附录A中ASCII表查出每一个字符或特殊控制功能的编码。例如,大写英文字母A,从表中查出其3位组为(100)2,4位组为(0001)2,故构成字母A的ASCII编码为(1000001)2或(41)16。,课堂练习1(时间20分钟),1、4DAH=_D 2、77.625D=
9、_B 3、0110 1011B=_D 4、12DH=_B 5、0001 0101B=_D 6、1010.0101B=_H 7、1101110B=_H 8、S的ASCII码为_H,课堂练习1答案:,1、4DAH=1242D 2、77.625D=0100 1101.101B 3、0110 1011B=107D 4、12DH=0001 0010 1101B 5、0001 0101B=21D 6、1010.0101B=A.5H 7、1101110B=6EH 8、S的ASCII码为53H,1.2 计算机中的码制(重点),符号数和无符号数 原码、反码和补码:X原X反X补 一些基本概念: 真值:符合人们使用
10、习惯的原始表示形式1011100B 机器数:数据在机器中的实际表示形式01011100B和11011100B 定点数:小数点的默认位置已被固定的数,定点整数,定点小数(纯小数)优点:数值精确没有误差,缺点:表示范围狭窄 原码 例如,8位二进制符号数(+45) 10和(-45) 10,可以如下写出:(+45) 1原=(0 0101101) 2符号 位数值 (-45) 1原=( 1 0101101) 2 符号位 数值,反码 在计算机的早期,曾采用反码法来表示带符号的数。对于正数,其反码与其原码相同。例如:(+45) 反=(00101101) 2 也就是说正数的原码和反码相同。 对于负数,用相应正数
11、的原码各位取反来表示,包括将符号位取反,取反的含义就是将0变为1,将1变为0。例如,(-45)10的反码表示就是将上面(+45) 10的二进制数各位取反:(-45) 反=(11010010) 2,同样,可以写出如下几个数的反码表示 (+4) 反=(00000100) 2(-4) 反=(11111011) 2 (+7) 反=(00000111) 2 (-7) 反=(11111000) 2 (+122) 反=(01111010) 2 (-122) 反=(10000101) 2,补码 在微处理机中,符号数是用补码补码的含义(对2的补码)来表示的。用补码表示带符号数的法则是:正数的表示方法与原码和反码
12、一样;负数的表示方法为该负数的反码表示加1。例如,(+4)10的补码表示为(00000100) 2,而(-4) 10用补码表示时,可先求其反码表示(11111011) 2,而后再在其最低位加1,变为(11111100) 2。这就是(-4) 10的补码表示,即(-4) 补=(11111100)2。,同样,我们把前面提到的几个数的补码 表示列在下面:(+7) 10补=(00000111) 2 (-7) 10补=(11111001) 2 (+122) 10补=(01111010) 2 (-122) 10补=(10000110) 2 (-128)10补=(1000 0000)2?(-64-64) 负0
13、的补码与正0的补码相同,注意负0的反码和正0的反码不一样,补充:二进制运算基础(要求了解),二进制加法二进制加法与十进制加法相类似,所不同的是,二进制加法中是“逢二进一”,其法则为0+0=0 1+0=1 0+1=1 1+1=0 并进位,例如,两个二进制数相加:10110101 + 10001110 101000011 二进制减法 在二进制减法中,同样有如下法则: 0-0=0 1-0=1 1-1=0 0-1=1 有借位,当不够减时需要借位,高位的1等于下一位的2,即“借一当二”。例如,两个二进制数相减:10110100 - 01010111 01011101,二进制乘法 二进制乘法与十进制乘法是
14、一样的。但因为二进制数只由0和1构成,因此,二进制乘法更简单。其法则如下:00=0 10=0 01=0 11=1,例如,二进制数1101.1与101.1相乘:1101.1 被乘数(13.5) 10 101.1 乘数(5.5) 10 1101111011 00000 + 11011 1001010.01 乘积 (74.25) 10,再看下面的例子:(1011) 2(1101) 2。1011 被乘数(11) 10 1101 乘数(13) 10101100001011+ 101110001111 乘积(143) 10,二进制除法 二进制除法是乘法的逆运算,其方法与十进制除法是一样的,而且二进制数仅由
15、0,1构成,做起来更简单。例如,求二进制数100100除以110的商的方法如下:110110 1001001101101100,1.2.2 整数补码的运算 基本概念:机器字长:8,32,64模:计量器的最大容量,钟表盘的模为24有模的运算:类似时钟的运算求补运算:按位取反,末尾加1X+Y补X补+Y补X-Y补X补+-Y补 当真值满足下列条件时,应用上述规则可以得到正确结果。 -2n-1(X,Y,XY)2n-1,例:两个带符号的数(01000001)2(十进制数+65)与(00111101)2(十进制数+61)相加:01000001+ 0011110101111110(126)(无进位,无溢出)
16、再来看656165补+-61补。01000001+110000111 00000100(4)(有进位,无溢出),6561-65补+-61补10111111 +11000011110000010(126)(有进位,无溢出) 例:两个带符号的数(01000001)2(十进制数+65)与(01000011)2(十进制数+67)相加:01000001+ 0100001110000100(124132) (无进位,有溢出)超过范围,结果不正确,此外,在微处理机中还会遇到无符号数的运算。例如 01000001+ 0100001110000100(132) 在上式中超出范围,在无符号数中没有超出范围,结果正
17、确 无符号数的表示范围与符号数表示的范围不同: 无符号数: 0X2n 符号数: -2n-1X2n-1,进位和溢出,进位:符号位向更高位的进位称为进位,进位保存在进位标志寄存器中。对于符号数,进位值不能统计在结果中对于无符号数,进位值不能随意抛弃 溢出:运算结果超出了寄存器所能表示的范围,结果保存在溢出标志寄存器中当参与运算的两个数,其符号位相同而与结果的符号位相异时,溢出标志寄存器置1,否则置0,1.3 浮点数基本概念 1. 数的定点表示法 当小数点固定在最高有效位的前面时,定点数为纯小数由于定点位置不同,一般又分为两种情况。对于整数,小数点约定在最低位的右边,称为定点整数。在Intel CP
18、U中,通常采用的是定点整数。本门课程涉及的几乎都是。 对于纯小数,小数点约定在符号位之后,称为定点小数。,2. 数的浮点表示法 在十进制中,一个数可以写成多种表示形式。例如,83.125可写成1020.83125,1030.083125,1040.0083125等等。同样,一个二进制数,也可以写成多种表示形式。例如,二进制数1011.10101可以写成240.101110101,250.0101110101,260.00101110101等等。可以看出,一个二进制数能够用一种普遍的形式来表示:S 2 J,其中J称为阶码,S叫做尾数。我们把用阶码和尾数表示的数叫做浮点数,这种表示数的方法称为浮点
19、表示法。 在浮点表示法中,阶码通常为带符号的整数,尾数为带符号的纯小数。浮点数的表示格式如下:阶码和尾数采用同样的码制; 阶码和尾数采用不同的码制。,小数点,可见,若浮点数的表示格式为,1位,R位,1位,P位,则可以看到,用这种编码所能表示的数的数值 范围为(用原码表示)用补码表示:,前面的二进制数1011.10101可以用包括符号在内的8位阶码,16位尾数的规格化形式表示如下:,阶符,阶码,尾符,小数点,尾数,课堂练习2:,127-79 79127 3575 3575 一个8位寄存器的内容为(11000011),则其表示的真值是_,无符号数是_ _,补码数是_,反码数是_。,本章总结,1. 计算机中的数制:二进制、八进制、十六进制之间的相互转换,以及他们与十进制的转换 2计算机中的码制:原码、补码、反码的表示,以及各自的表示范围,补码的加法与减法及其溢出判别方法 3浮点数的基本概念:浮点数、浮点数的表示 课外作业:1.1,