微机原理与接口技术主讲教师:王练E-mail:wanglian@cqupt.edu.cn重庆邮电学院计算机科学与技术学院王练微机原理与接口技术教材尚凤军等,微型计算机原理,机械工业出版社,2008参考资料仇玉章,32位微型计算机原理与接口技术,清华大学出版社,2002.7陈昌志等,微型计算机原理,重庆出版集团,2006.8姚燕南,微型计算机原理,西安电子科技大学出版社,2001.7沈美明、温冬婵,80x86汇编语言程序设计,清华大学出版社,2002.3王永山、杨宏五、杨婵娟,微型计算机原理与应用(以IBMPC系列机为例),西安电子科技大学出版社,1993.3重庆邮电学院计算机科学与技术学院王练课程简介微机原理与接口技术是工科计算机及相关专业的一门重要的专业技术基础课程。课程目的是帮助学生全面了解微型计算机的硬件组成及特点;学会运用汇编语言进行程序设计和编程;建立起计算机体系结构的基本框架;为后继的软、硬件课程做好铺垫。计算机、非计算机专业课程比较:计算机专业非计算机专业汇编语言程序设计微机接口技术微机原理与接口技术计算机组成原理重庆邮电学院计算机科学与技术学院王练考核方式:闭卷统考最终成绩=期末卷面最终成绩+平时成绩平时成绩(作业成绩,出勤情况,课堂情况)第一章微型计算机系统概述1.微型计算机基础1.1微型计算机发展概述1、微型计算机硬件体系的发展2、微型计算机软件的发展重庆邮电学院计算机科学与技术学院王练重庆邮电学院计算机科学与技术学院王练2.冯诺依曼结构计算机1946年6月,美国科学家冯诺依曼提出了“存储程序”的计算机设计方案。现代计算机的硬件结构仍沿用了冯诺依曼提出的计算机逻辑结构和存储程序概念。冯诺依曼结构计算机被誉为计算机发展史上的里程碑。重庆邮电学院计算机科学与技术学院王练冯诺依曼机的特点:“存储程序”指将指令、数据以二进制形式存入计算机系统的存储器中。“程序控制”是计算机在启动后,自动取出并执行存于存储器中的指令,完成预定的操作。计算机硬件系统由运算器、控制器、存储器、I/O接口和I/O设备、电源系统等组成。图2.1冯诺依曼结构计算机的组成存储器(内存):用来存储指令和数据。运算器(ALU:ArithmeticLogicUnit):进行算术运算和逻辑运算的部件,也是指令的执行部件。控制器:指挥中心,负责对指令进行译码,产生控制信号,控制其他部件完成指令规定的操作。输入设备:通过接口电路将程序和数据输入内存。如,键盘、扫描仪等。输出设备:CPU通过输出接口电路,将结果及程序、数据送到输出设备上。如,显示器、打印机等。计算机的软/硬件发展史起迄年份代别主要逻辑元件软件晶体管集成电路功能较强的操作系统、会话式语言大规模或超大规模集成电路软件工程的研究与应用、数据库、语言编译系统和网络软件1946-19571958-19641965-19701970至今一二三四电子管机器语言、汇编语言重庆邮电学院计算机科学与技术学院王练1.2计算机中的数制与码制1.2.1数制1.常用计数制(1)十进制数(D:Decimal)特点:每位有0~9这10种数码,基数为10,高位权是低位权的10倍.加减运算的法则“逢十进一,借一当十”.(2)二进制数(B:Binary)特点:每位只有0和1两种数码,基数为2,高位权是低位权的2倍.二进制加减运算的法则“逢二进一,借一当二”.重庆邮电学院计算机科学与技术学院王练(3)八进制(Q:Octal)特点:每位有0~7这8种数码,基数为8,高位权是低位权的8倍.加减运算的法则“逢八进一,借一当八”.八进制是二进制的另一种书写形式,3位二进制一组可用等价的一位八进制数表示.(4)十六进制(H:Hexadecimal)特点:每位有0~9和A~F这16种数码,基数为16,高位权是低位权的16倍.加减运算的法则“逢十六进一,借一当十六”.十六进制是二进制的另一种书写形式,4位二进制一组用等价的一位十六进制数表示.重庆邮电学院计算机科学与技术学院王练进位计数制基数数码权重符号二进制数20,12iB八进制数80,1,2,3,4,5,6,78iQ十进制数100,1,2,3,4,5,6,7,8,910iD十六进制数160,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F16iH常用计数制表:重庆邮电学院计算机科学与技术学院王练(5)二-十进制数(BCD:BinaryCodedDecimal)特点:BCD码是计算机中十进制数的表示方法,二-十进制码用4位二进制码表示1位十进制数.最常用的是8421编码,其方法是用4位二进制数表示1位十进制数,自左至右每一位对应的位权是8、4、2、1。压缩BCD码每一位十进制数用4位二进制数来表示,即一个字节表示2位十进制数。例:压缩BCD码(10001001)BCD,表示十进制数89。非压缩BCD码每一位十进制数用8位二进制数来表示,即一个字节表示1位十进制数。且只用每个字节的低4位来表示0~9,高4位为0。例如:十进制数89,用非压缩BCD码表示为:(0000100000001001)BCD重庆邮电学院计算机科学与技术学院王练BCD)0101100011010001()001101100000(34562例:区分BCD码和二进制数2.计数制的书写规则(1)在数字后面加写相应的英文字母作为标识。例:1001B,3456Q,10FAH,3578D(2)在括号外面加数字下标。例:(1001)2,(1001)8,(2DF2)16(3)无任何标注默认为十进制数重庆邮电学院计算机科学与技术学院王练1.2.2数值转换(1)任意进制转换为十进制方法:按权展开把每个数位上的代码和该数位的权值相乘,再累加和即可得到等值的十进制数.N=dn-1bn-1+…+d1b1+d0b0+d-1b-1……d-mb-mn:整数的总位数m:小数的总位数d下标:表示该位的数码b:表示进位制的基数b上标:表示该位的位权例:625.232*12*02*12*12*12*12*02*1)101.10111(3210123424327816*1416*016*916*10)90(012316EA重庆邮电学院计算机科学与技术学院王练(2)十进制数转换为二进制数根据该十进制数的类型决定转换方法.①十进制整数转换为二进制数方法:“除二倒取余”,即十进制整数被2除,取其余数,商再被2除,取其余数…直到商为0时结束运算,然后把每次的余数按倒序规则排列就得到等值的二进制数.重庆邮电学院计算机科学与技术学院王练【例1】将十进制整数(105)10转换为二进制数,采用“除2倒取余”的方法,过程如下:解:所以,(105)10=(1101001)2重庆邮电学院计算机科学与技术学院王练②十进制纯小数转换为二进制数方法:“乘2取整”,即把十进制纯小数乘以2,取其整数(该整数部分不再参加后继运算),乘积的小数部分再乘以2,取整…,直到乘积的小数部分为0.然后把每次乘积的整数部分按正序规则排序,即为等值的二进制数.【例2】将十进制小数(0.8125)10转换为二进制小数,采用“乘2顺取整”的方法,过程如下:所以,(0.8125)10=(0.1101)2注意:如果出现乘积的小数部分一直不为“0”,则可以根据精度的要求截取一定的位数取近似值。重庆邮电学院计算机科学与技术学院王练③十进制带小数转换为二进制数方法:整数部分“除2倒取余”,小数部分“乘2取整”,然后再进行组合.【例3】(3)二进制数转换为十六进制数方法:从小数点开始分别向左或向右,将每4位二进制数分成1组,不足4位的补0,然后将每组用一位十六进制数表示即可。【例4】210)1101.1011()8125.11(重庆邮电学院计算机科学与技术学院王练(4)十六进制数转换为二进制数方法:将每一位十六进制数可用4位等值二进制数表示。【例5】即101111110.01011B(5)十进制整数转换为八进制整数或十六进制整数方法:采用基数8或基数16连续去除该十进制整数,直至商等于“0”为止,然后逆序排列所得到的余数。先将十进制整数转换为二进制,再将该二进制数转换为八进制或十六进制.216)1000,0101.1110,0111,0001()58.17(E重庆邮电学院计算机科学与技术学院王练(6)十进制小数转换为八进制小数或十六进制小数方法:连续用基数8或基数16去乘以该十进制小数,直至乘积的小数部分等于“0”,然后顺序排列每次乘积的整数部分。重庆邮电学院计算机科学与技术学院王练【例6】将十进制整数(2347)10转换为十六进制整数,采用“除16倒取余”的方法,过程如下:16︳2347余数16︳146…11(十六进制数为B)16︳9…20…9所以,(2347)10=(92B)16重庆邮电学院计算机科学与技术学院王练字符的编码ASCII码(AmericanStandardCodeforInformationInterchange,美国信息交换标准代码),用7位二进制数作为字符的编码,.最高为位作为奇偶校验位.ASCII码包括英文字母的大小写、数字、专用字符、控制字符等共128种字符,可分为:34控制字符10阿拉伯数字52英文大小写字母32专用符号HL0000010100111001011101110000NULDLESP0@Pp0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENGNAK%5EUeu0110ACKSYN&6FVfv0111BELETB‘7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,L\l∣1101CRGS-=M]m}1110SORS.N↑n~1111SIUS/?O↓oDEL标准ASCII码字符表注:H为高3位(D7~D5),L为低4位(D4~D1).NUL:空DLE:数据键换码SOH:标题开始DC1:设备控制1STX:正文开始DC2:设备控制2ETX:正文结束DC3:设备控制3EOT:传输结束DC4:设备控制4ENG:询问NAK:否定ACK:认可SYN:同步字符BEL:报警ETB:信息组传送结束BS:退一格CAN:作废HT:横向制表EM:纸尽LF:换行SUB:减VT:纵向制表ESC:换码FF:走纸控制FS:文字分隔符CR:回车GS:组分隔符SO:移位输出RS:记录分隔符SI:移位输入US:单元分隔符SP:空格DEL:删除重庆邮电学院计算机科学与技术学院王练1.2.3码制1.基本概念真值数:用“+/-”表示数正负的数,如X=-1011101B.机器数:符号数值化,用符号位上的0、1来表示数的正、负,如Y=11011101B.2.计算机中使用的两种数:无符号数:为正整数,无符号位.若机器字长为n,其数值范围为0~2n.有符号数:有4种表示方法原码[X]原,反码[X]反,补码[X]补和移码[X]移.重庆邮电学院计算机科学与技术学院王练1)原码、反码和补码•原码:最高位为符号位(0为正,1为负),其余各位表数值本身.【例7】机器字长n=8,X=+1011011B,Y=-1011100B,求[X]原和[Y]原.解:=01011011B,=11011100B【例8】机器字长n=8,X=+0000000B,Y=-0000000B,求和.解:=00000000B,=10000000B重庆邮电学院计算机科学与技术学院王练【例9】机器字长n=8,真值X=+1011011B,Y=-1011011B分别求其原码、反码及补码.解:根据定义得:X为正时[X]原码=[X]反码=[X]补码=01011011BY为负时[Y]原码=11011011B[Y]反码=10100100B[Y]补码=10100101B2)机器数的移码移码的表示方法有所不同,其符号位为0表示负,为1表示正;无论正数、负数还是零,均可在补码表示的基础上通过将符号位取反来获得.原码反码补码