微机原理与接口技术课程简介•课程名称:微机原理与汇编语言•课程性质:必修•行课时间:16周×4学时•学分:53课程目标微机原理是学习和掌握微机硬件知识和汇编语言程序设计的入门课程,包括以下几个方面的内容:微型计算机的基本工作原理汇编语言程序设计微型计算机接口技术通过该课程的学习,同学们应建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力。4课程安排1微型计算机基础2微处理器结构及基本原理3存储器系统480X86指令系统和寻址方式5汇编语言程序设计6输入/输出系统7中断系统8常用的可编程接口芯片9总线10人机交互设备及其接口5课程考核期末考试:60%上机考核:20%平时考核:20%(课堂表现+作业)最终成绩=期末考试+上机考核+平时考核微型计算机基础概论第一章7主要内容•1.1微型计算机概述•1.2微型计算机系统的组成•1.3微型计算机中信息的表示•1.4小结81.1微型计算机概述•1946年,第一台电子数字计算机ENIAC研制成功。•1981年,IBM公司进入微型计算机领域并推出IBM-PC之后,计算机的发展进入了一个新的时代——微型计算机时代。一、电子计算机的发展:•电子管计算机(1946-1956)•晶体管计算机(1957-1964)•中小规模集成电路计算机(1965-1970)•超大规模集成电路计算机(1971-今)二、电子计算机按其性能分类:•大中型计算机/巨型计算机(MainframeComputer)•小型计算机(Minicomputer)•微型计算机(Microcomputer)•单片计算机(Single-ChipMicrocomputer)电子计算机的发展历程•微型计算机的发展是以微处理器的发展来表征的•微处理器的集成度每隔18-24个月就会翻一番,芯片的性能也随之提高一倍------摩尔定律IntelCPU的发展见下页表代发表年份字长(bits)型号线宽(m)晶体管数(万个)时钟频率(MHz)速度(MIPS)一197119724840048008500.20.310.05二197488080200.52-40.5三19781982168086/8088802862-32.9134.77-108-2011-2四198519893280386804861-227.512012-3325-666-1220-40五199332Pentium0.6-0.833060-200100-200六1995199619971999200132P/ProP/MMXPIIPIIIP40.60.60.35.25-.13.18-.135504507508503000133-200166-233233-450450-12001300-3000300七2002?64Itanium?0.08CPU:2.5KCache:30K800(20条指令/时钟周期)3000微型计算机的分类•按处理器(CPU)的字长分类–4位微型计算机–8位微型计算机–16位微型计算机–32位微型计算机•按照微型计算机的利用形态分类–单片微型计算机–单板微型计算机–位片式微型计算机–微型计算机系统18微型计算机系统的主要技术指标•字长字长是指计算机内部一次可以处理的二进制数的位数。•主频主频是微型计算机中CPU的时钟频率。通常是指计算机中时钟脉冲发生器所产生的时钟信号的频率,单位为MHz。•主存储器容量存储器容量指的是存储设备可容纳二进制信息的最大字节数。19微型计算机系统的主要技术指标•存取周期微型计算机内主存完成一次读/写操作所需要的时间称为存储器的存取时间,连续进行两次读/写所需的最短时间称为存储器的存取周期。•运算速度计算机的运算速度一般用每秒所能执行的指令条数来表示。单位用MIPS(百万条指令/秒)。常用计算方法有:–根据不同类型指令出现的频度,乘上不同的系数,求得统计平均值,得到平均运算速度。–以执行时间最短的指令(如加法指令)为标准来估算速度。–直接给出CPU的主频和每条指令的执行所需的时钟周期。主频一般以MHz为单位。20微型计算机系统的层次算术逻辑部件累加器寄存器控制部件内部总线微处理器存储器RAMROM输入输出接口系统总线微型计算机外围设备系统软件微型计算机系统微型计算机系统的层次结构图21微型计算机系统的层次•微处理器–CPU,包含算术逻辑单元、控制单元、累加器、寄存器组、内部总线等•微型计算机–CPU配上存储器、输入输出接口、系统总线,组成的小系统•微型计算机系统–以微型计算机为主体,配上外围设备、电源、系统软件和应用软件22微型计算机技术的发展趋势•多级流水线结构–把大的顺序操作分解成若干段,使之在时间上重叠•芯片上存储管理技术–高速缓存与CPU集成在同一芯片内•虚拟存储技术–主内存与辅助存储器之间的调度管理•并行处理的哈佛结构–采用多个内部数据/地址总线,将数据与指令缓存访问分开•RISC结构——精简指令系统231.2微型计算机系统的组成硬件系统I/O设备CPU运算器控制器存储器RAMROMI/O接口AB地址总线DB数据总线CB控制总线8255、8250(8251)8253、8259键盘、打印机显示器、软硬盘A/D、D/A等微型计算机的硬件组成25微型计算机的硬件组成•微处理器(或中央处理器、CPU)地址缓冲器地址总线(AB)指令寄存器(IR)指令译码(ID)操作控制器(OC)...控制总线(CB)寄存器组通用寄存器组堆栈指针(SP)程序计数器(PC)地址缓冲器数据总线(DB)累加器(AC)累加锁存器暂存器ALU标志寄存器(FR)操作控制信号运算器控制器2、存储器功能:存放程序和数据。存储器内存(主存)外存(辅存)RAMROMSRAMDRAMROMEPROME2PROM软盘、U盘硬盘(移动硬盘)光盘cacheFlash27微型计算机的硬件组成RAM结构框图28微型计算机的硬件组成•I/O接口设备I/O接口设备也称为I/O接口电路,即通常所说的适配器、适配卡或接口卡。它是微型计算机和外部设备交换信息的桥梁。–结构:一般由寄存器组、专用存储器和控制电路三部分组成,当前的控制指令、通信数据、外部设备的状态信息等分别存储在专门的存储器或寄存器中。–连接:所有外部设备都是通过各自的接口电路连接到微型计算机的系统总线上。–通信方式:分为并行通信和串行通信,并行通信是将数据各位同时传送,串行通信是将数据一位一位地顺序传送。29微型计算机的硬件组成•微型计算机的总线结构输入设备输入接口中央处理器CPU存储器RAMROM输出设备输出接口DBABCB数据总线地址总线控制总线微型计算机的总线结构总线:传递信息的一组公用导线。系统总线:从处理器引出的若干信号线,CPU通过它们与存储器或I/O设备进行信息交换。a)地址总线:传递地址信息的总线,即AB。CPU在地址总线上输出将要访问的内存单元或I/O端口的地址,该总线为单向总线。b)数据总线:传递数据信息的总线,即DB。双向总线c)控制总线:传递控制信息的总线,即CB。双向总线31软件系统•软件系统层次结构–系统软件•操作系统软件,如DOS、WINDOWSXP、WINDOWSNT、Linux、Netware等;•各种语言的处理程序,如机器语言、高级语言、编译程序、解释程序;•各种服务性程序,如调试、故障检查、诊断程序等;•各种数据库管理系统,如SQLSever、Oracle等。–应用软件•用于科学计算方面的数学计算软件包、统计软件包等;•文字处理软件包,如WPS、Office2007;•图像处理软件包,如Photoshop、动画处理软件3DSmax;•各种财务管理软件、税务管理软件、工业控制软件、辅助教育等专用软件。321.3微型计算机中信息的表示•数制是指用一组固定的符号和统一的规则来表示数值的方法。•进位计数制,简称“进制”,是按进位的原则进行计算的数制。•进位计数制有如下特点:–数制的基数确定了所采用的进位计数制。表示一个数时所用的数字符号的个数称为基数。对于N进位数制,有N个数字符号,基数为N。–逢N进一。对于十进制,是逢10进1。–采用位权表示方法。处在不同位置上的相同数字所代表的值不同,一个数字在某个位置上所表示的实际数值等于该数值与这个位置的因子的乘积,而该位置的因子由所在位置相对于小数点的距离来确定,简称为位权。33微型计算机中信息的表示–位权与基数的关系是:位权的值恰是基数的整数次幂。对于各位权的幂,从小数点开始,向左依次为0、1、2、3…,依次加1;向右依次为﹣1、﹣2、﹣3…,依次减1。例:(1011.1)2=1*23+0*22+1*21+1*20+1*2-1(56D.3)16=5*162+6*161+13*160+3*16-134进制数的书写规则•在数字后面加写相应的英文字母作为标志。–B(Binary):表示二进制数。101001B–O(Octonary):表示八进制数。1321O–D(Decimal):表示十进制数。100D–H(Hexadecimal):表示十六进制数。3ACH•在括号外面加数字下标。–(101001)2:表示二进制数的101001。–(1321)8:表示八进制数的1321。–(100)10或100:表示十进制数的100。–(3AC)16:表示十六进制数的3AC。35例:(1011.1)2=1*23+0*22+1*21+1*20+1*2-1(56D.3)16=5*162+6*161+13*160+3*16-1数制转换•R进制数转换为十进制数–只需按位及位权展开求和即可。36数制转换•十进制数转换为R进制数–整数部分:除R取余(逆序),直到商为零。把需转换的十进制整数部分除以R,得到商和余数,然后继续把商除以R,得到新商和余数,继续下去,直到余数为0。把这些余数按后得到的排在前面的方式组成一列数,作为R进制的整数部分。–小数部分:乘R取整(顺序),直到满足精度要求。把需转换的十进制小数部分乘以R,记录整数部分,继续把积的小数部分乘以R,记录整数部分,直到满足条件的精度或者积的小数部分为零。将所记录的整数部分按照出现的先后顺序排列,作为R进制的小数部分。例:将(136)D转换为二进制数。2136余数(结果)低位268----------0234----------0217----------028----------124----------022----------021----------00----------1高位转换结果:(136)D=(10001000)B例:将(0.625)D转换为二进制数。0.625*21.25*20.5*21.0取整:高位低位转换结果:(0.625)D=(0.101)B若出现乘积的小数部分一直不为“0”,则可以根据计算精度的要求截取一定的位数即可。如0.6*239二进制与八、十六进制之间的转换•二进制与八进制、二进制与十六进制数互相转换–二进制数→八进制数将二进制数从小数点开始,整数部分从右往左每三位一组,小数部分从左往右每三位一组,不足三位用0补足,每组分别对应一位八进制数,从高到低顺序写出每组的八进制数码即可。–二进制数→十六进制数将二进制数从小数点开始,整数部分从右往左每四位一组,小数部分从左往右每四位一组,不足四位用0补足,每组分别对应一位十六进制数,从高到低顺序写出每组的十六进制数码即可。例:(10001000.00101)2=(220.12)8=(108.28)1640有符号数的表示•机器数的原码–对一个二进制数而言,若使最高位表示数的符号(常以0表示正数,1表示负数),其余各位表示数值本身,则称为原码。•例如,当机器字长为8位二进制时:X=+73,Y=﹣73,–[X]原码=01001001,[X]真值=+1001001;–[Y]原码=11001001,[Y]真值=-1001001;•[+0]原码=00000000,[+0]真值=+0000000;•[﹣0]原码=10000000,[﹣0]真值=﹣0000000。•原码表示的整数范围是﹣(2n-1﹣1)~+(2n-1﹣1),其中n为机器字长