1微机原理与接口技术大家好!2课程目标掌握:微型计算机的基本工作原理汇编语言程序设计方法微型计算机接口技术建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力3教材及实验指导书教材:《微机原理与接口技术》(第3版).冯博琴,吴宁主编.清华大学出版社实验指导书《微机原理与接口技术实验指导书》(讲义)陈文革,吴宁,夏秦编.西安交通大学《微机原理与接口技术题解及实验指导》(第3版).吴宁,陈文革编.清华大学出版社目录第1章微型计算机基础概论第2章微处理器与总线第3章指令系统第4章汇编语言程序设计第5章存储器系统第6章输入输出第7章基本输入/输出方法(DMA)第8章中断技术第9章模拟量的输入输出(D/A转换)第10章模/数(A/D)转换器5第1章微型计算机基础概论主要内容:微机系统的组成计算机中的编码、数制及其转换无符号二进制数的运算算术运算和逻辑运算运算中的溢出机器数的表示及运算基本逻辑门及译码器6一、微型计算机系统微型机的工作原理微机系统的基本组成71.计算机的工作原理冯•诺依曼计算机的工作原理存储程序工作原理8存储程序原理将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存指令按其在存储器中存放的顺序执行;由控制器控制整个程序和数据的存取以及程序的执行。9冯•诺依曼计算机体系结构运算器存储器控制器输入设备输出设备10冯•诺依曼机的工作过程内存中的程序指令1指令2指令n┇分析获取操作数执行存放结果┇程序计数器PC地址CPU取出操作数11冯•诺依曼机的工作过程取一条指令的工作过程:将指令所在地址赋给程序计数器PC;PC内容送到地址寄存器AR,PC自动加1;把AR的内容通过地址总线送至内存储器,经地址译码器译码,选中相应单元。CPU的控制器发出读命令。在读命令控制下,把所选中单元的内容(即指令操作码)读到数据总线DB。把读出的内容经数据总线送到数据寄存器DR。指令译码因为取出的是指令的操作码,故数据寄存器DR把它送到指令寄存器IR,然后再送到指令译码器ID冯•诺依曼机的特点和不足特点:程序存储,共享数据,顺序执行属于顺序处理机,适合于确定的算法和数值数据的处理。不足:与存储器间有大量数据交互,对总线要求很高;执行顺序有程序决定,对大型复杂任务较困难;以运算器为核心,处理效率较低;由PC控制执行顺序,难以进行真正的并行处理。12典型的非冯•诺依曼机结构数据流驱动的计算机结构当指令具有所需数据、且输出端没有数据时就可执行。13数据流处理机存储器主处理机数据通道控制通道高速数据总线磁盘存储器DataflowImageProcessingSystem142.系统组成主机硬件系统外设微机系统系统软件软件系统应用软件CPU存储器输入/输出接口总线15微处理器微处理器简称CPU,是计算机的核心。主要包括:运算器控制器寄存器组16存储器定义:用于存放计算机工作过程中需要操作的数据和程序。17有关内存储器的几个概念内存单元的地址和内容内存容量内存的操作内存的分类18内存单元的地址和内容内存按单元组织每单元都对应一个地址,以方便对单元的寻址1011011038F04H内存地址单元内容19内存容量内存容量:所含存储单元的个数,以字节为单位内存容量的大小依CPU的寻址能力而定实地址模式下为CPU地址信号线的位数20内存操作读:将内存单元的内容取入CPU,原单元内容不改变;写:CPU将信息放入内存单元,单元中原来的内容被覆盖。21内存储器的分类随机存取存储器(RAM)只读存储器(ROM)按工作方式可分为22输入/输出接口接口是CPU与外部设备间的桥梁CPUI/O接口外设23接口的分类串行接口并行接口数字接口模拟接口输入接口输出接口24接口的功能数据缓冲寄存;信号电平或类型的转换;实现主机与外设间的运行匹配。25总线基本概念分类工作原理常用系统总线标准及其主要技术指标(具体内容见后续课程)26软件系统软件:为运行、管理和维护计算机系统或为实现某一功能而编写的各种程序的总和及其相关资料。系统软件应用软件操作系统编译系统网络系统工具软件软件27二、计算机中的数制和编码数制和编码的表示各种计数制之间的相互转换281.常用计数法十进制(D)二进制(B)十六进制(H)29例:234.98D或(234.98)D1101.11B或(1101.11)BABCD.BFH或(ABCD.BF)H302.各种进制数间的转换非十进制数到十进制数的转换十进制到非十进制数的转换二进制与十六进制数之间的转换31非十进制数到十进制数的转换按相应的权值表达式展开例:1011.11B=1×23+0×22+1×21+1×20+1×2-1+1×2-2=8+2+1+0.5+0.25=11.755B.8H=5×161+11×160+8×16-1=80+11+0.5=91.532十进制到非十进制数的转换到二进制的转换:对整数:除2取余;对小数:乘2取整。到十六进制的转换:对整数:除16取余;对小数:乘16取整。33二进制与十六进制间的转换用4位二进制数表示1位十六进制数例:25.5=11001.1B=19.8H11001010.0110101B=CA.6AH343.计算机中的编码BCD码用二进制编码表示的十进制数ASCII码西文字符编码35BCD码压缩BCD码用4位二进制码表示一位十进制数每4位之间有一个空格扩展BCD码用8位二进制码表示一位十进制数,每4位之间有一个空格。36BCD码与二进制数之间的转换先转换为十进制数,再转换二进制数;反之同样。例:(00010001.00100101)BCD=11.25=(1011.01)B37ASCII码西文字符的编码,一般用7位二进制码表示。D7位为校验位,默认情况下为0。要求:理解校验位的作用熟悉0---F的ASCII码38ASCII码的奇偶校验奇校验加上校验位后编码中“1”的个数为奇数。例:A的ASCII码是41H(1000001B)以奇校验传送则为C1H(11000001B)偶校验加上校验位后编码中“1”的个数为偶数。上例若以偶校验传送,则为41H。39三、无符号二进制数的运算算术运算逻辑运算无符号数有符号数二进制数的运算40主要内容无符号二进制数的算术运算无符号数的表达范围运算中的溢出问题无符号数的逻辑运算基本逻辑门和译码器411.无符号数的算术运算加法运算1+1=0(有进位)减法运算0-1=1(有借位)乘法运算除法运算42乘除运算例00001011×0100=00101100B00001011÷0100=00000010B即:商=00000010B余数=11B432.无符号数的表示范围:0≤X≤2n-1若运算结果超出这个范围,则产生溢出。对无符号数:运算时,当最高位向更高位有进位(或借位)时则产生溢出。44[例]:最高位向前有进位,产生溢出453.逻辑运算与、或、非、异或掌握:与、或、非门逻辑符号和逻辑关系(真值表);与非门、或非门的应用。46“与”、“或”运算“与”运算:任何数和“0”相“与”,结果为0。“或”运算:任何数和“1”相“或”,结果为1。&&≥1≥147“非”、“异或”运算“非”运算按位求反“异或”运算相同则为0,相异则为1484.译码器掌握74LS138译码器各引脚功能输入端与输出端关系(真值表)4974LS138译码器G1G2AG2BCBAY0Y7••••主要引脚及功能50三、机器数(有符号数)的运算51计算机中符号数的表示机器数计算机中的数据构成:符号位+真值“0”表示正“1”表示负52[例]+52=+0110100=00110100符号位真值-52=-0110100=10110100符号位真值531.符号数的表示机器数的表示方法:原码反码补码54原码最高位为符号位(用“0”表示正,用“1”表示负),其余为真值部分。优点:真值和其原码表示之间的对应关系简单,容易理解;缺点:计算机中用原码进行加减运算比较困难0的表示不唯一。55数0的原码8位数0的原码:+0=00000000-0=10000000即:数0的原码不唯一。56反码对一个机器数X:若X0,则[X]反=[X]原若X0,则[X]反=对应原码的符号位不变,数值部分按位求反57[例]X=-52=-0110100[X]原=10110100[X]反=11001011580的反码:[+0]反=00000000[-0]反=11111111即:数0的反码也不是唯一的。59补码定义:若X0,则[X]补=[X]反=[X]原若X0,则[X]补=[X]反+160[例]X=–52=–0110100[X]原=10110100[X]反=11001011[X]补=[X]反+1=11001100610的补码:[+0]补=[+0]原=00000000[-0]补=[-0]反+1=11111111+1=100000000对8位字长,进位被舍掉62特殊数10000000对无符号数:(10000000)B=128在原码中定义为:-0在反码中定义为:-127在补码中定义为:-12863符号数的表示范围对8位二进制数:原码:-127~+127反码:-127~+127补码:-128~+127642.符号二进制数与十进制的转换对用补码表示的二进制数:1)求出真值2)进行转换65[例]:补码数转换为十进制数[X]补=00101110B正数所以:真值=0101110BX=+46[X]补=11010010B负数所以:真值不等于-1010010B而是:X=[[X]补]补=[11010010]补=-0101110=-46663.符号数的算术运算通过引进补码,可将减法运算转换为加法运算。即:[X+Y]补=[X]补+[Y]补[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补注:运算时符号位须对齐67[例]X=-0110100,Y=+1110100,求X+Y=?[X]原=10110100[X]补=[X]反+1=11001100[Y]补=[Y]原=01110100[X+Y]补=[X]补+[Y]补=11001100+01110100=01000000X+Y=+1000000为什么补码可以把减法变成加法?从10进制来说:减一,和加99,效果相同吗?在100之内,它们就是相同的。99,就是1的补数,100就是模。从8位2进制来说:减一,和加255,效果也是相同的。255,就是1的补码,二进制数100000000就是模,即十进制的256。求出补码后,就可以用“加补码”完成减法运算。原理就是上述的“同模”理论。如果结果的数字太大,超出了256所能容纳的范围,就是溢出。溢出了,并没有解决的办法。反码+1的方式,只是经验公式而已,没有原理。它说明不了-128的补码。因为在8位二进制的条件下,-128并没有反码。69符号数运算中的溢出问题两个带符号二进制数相加或相减时,若运算结果超出可表达范围,则产生溢出溢出的判断方法:最高位进位状态次高位进位状态=1,则结果溢出70[例]:若:X=01111000,Y=01101001则:X+Y=次高位向最高位有进位,而最高位向前无进位,产生溢出。(事实上,两正数相加得出负数,结果出错)11100001011010010111100071结束语:第1章难点:补码的概念及其运算72第2章微处理器与总线73主要内容:微处理器的功能和结构8088/8086微处理器特点主要引线功能和内部结构内部寄存器实地址模式下的存储器寻址总线时序总线一、微处理器及8088/8086CPU741.微处理器运算器控制器内部寄存器75微处理器762.程序和指令程序:具有一定功能的指令的有序集合指