微机原理教学教案_第1页
微机原理教学教案_第2页
微机原理教学教案_第3页
微机原理教学教案_第4页
微机原理教学教案_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE2教案授课题目第1章微型计算机基础知识授课时数教学方法授课班级与时间教学目标微型计算机的组成和各部分的作用,以及计算机中数的表示方法。技能目标:计算机中数的表示方法:原码、反码、补码的关系。教学重点微型计算机的组成和各部分的作用,以及计算机中数的表示方法。教学难点计算机中数的表示方法:原码、反码、补码的关系。教学内容、方法及过程§1.1微型计算机的组成及工作原理1.1.1微型计算机中的基本概念1.微处理器(Microprocessor)2.微型计算机(1)单片微处理机(2)通用微型计算机3.微型计算机系统1.1.2微型计算机的基本结构微型计算机的基本组成1.1.3微型计算机的基本工作过程微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能,这就是微型计算机的基本工作原理。工作过程:§1.2微处理器及其发展1.2.1微处理器的发展历史1.2.2微处理器的内部结构1.总线部件2.预取部件3.译码器4.控制器5.运算逻辑部件6.存储器管理部件1.2.3Pentium系列微处理器1.2.3.1Pentium奔腾微处理器的主要特点:1、标量体系结构2、双流水线结构1.2.3.2PentiumMMX的主要特点PentiumMMX是在奔腾芯片基础上增加了MMX技术。1.2.4微处理器的发展趋势§1.3数制与编码1.3.1数制的表示1.常用数制(1)十进制数我们熟悉的十进制数有两个主要特点:·有十个不同的数字符号:0、1、2、…、9;·低位向高位进、借位的规律是“逢十进一”“借一当十”的计数原则进行计数。例如:1234.45=1×103+2×102+3×101+4×100+4×10-1+5×10-2式中的10称为十进制数的基数,103、102、101、100、10-1称为各数位的权。十进制数用D结尾表示。(2)二进制数在二进制中只有两个不同数码:0和1,进位规律是“逢二进一”“借一当二”的计数原则进行计数。二进制数用B结尾表示。例如,二进制数11011011.01可表示为:(11011011.01)2==1×27+1×26+0×25+1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2(3)八进制数在八进制中有0、1、2…、7八个不同数码,采用“逢八进一”“借一当八”的计数原则进行计数。八进制数用Q结尾表示。例如,八进制数(503.04)Q可表示为:(503.04)Q=5×82+0×81+3×80+0×8-1+4×8-24)十六进制数在十六进制中有0、1、2…、9、A、B、C、D、E、F共十六个不同的数码,采用“逢十六进一”“借一当十六”的计数原则进行计数。十六进制数用H结尾表示。例如,十六进制数(4E9.27)H可表示为(4E9.27)H=4×162+14×161+9×160+2×16-1+7×16-22.不同进制数之间的相互转换表1-4列出了二、八、十、十六进制数之间的对应关系,熟记这些对应关系对后续内容的学习会有较大的帮助。1)二、八、十六进制数转换成为十进制数根据各进制的定义表示方式,按权展开相加,即可转换为十进制数。【例1-1】将(10101)B,(72)Q,(49)H转换为十进制数。(10101)B=1×24+0×23+1×22+0×21+1×20=37(72)Q=7×81+2×80=58(49)H=4×161+9×160=73(2)十进制数转换为二进制数十进制数转换二进制数,需要将整数部分和小数部分分开,采用不同方法进行转换,然后用小数点将这两部分连接起来。①整数部分:除2取余法。具体方法是:将要转换的十进制数除以2,取余数;再用商除以2,再取余数,直到商等于0为止,将每次得到的余数按倒序的方法排列起来作为结果。②小数部分:乘2取整法。具体方法是:将十进制小数不断地乘以2,直到积的小数部分为零(或直到所要求的位数)为止,每次乘得的整数依次排列即为相应进制的数码。最初得到的为最高有效数位,最后得到的为最低有效数字。(3)二进制与八进制之间的相互转换由于23=8,故可采用“合三为一”的原则,即从小数点开始向左、右两边各以3位为一组进行二-八转换:若不足3位的以0补足,便可以将二进制数转换为八进制数。反之,每位八进制数用三位二进制数表示,就可将八进制数转换为二进制数。(4)二进制与十六进制之间的相互转换由于24=16,故可采用“合四为一”的原则,即从小数点开始向左、右两边各以4位为一组进行二—十六转换,若不足4位的以0补足,便可以将二进制数转换为十六进制数。反之,每位十六进制数用四位二进制数表示,就可将十六进制数转换为二进制数。1.3.2常用的信息编码二—十进制BCD码(Binary-CodedDecimal)二—十进制BCD码是指每位十进制数用4位二进制数编码表示。由于4位二进制数可以表示16种状态,可丢弃最后6种状态,而选用0000~1001来表示0~9十个数符。这种编码又叫做8421码。2.字符编码(ASCII码)数字0~9的ASCII码为30H~39H。大写英文字母A~Z的ASCII码为41H~5AH。小写英文字母a~z的ASCII码为61H~7AH。3.奇偶校验码§1.4计算机数值数据表示与运算1.4.1二进制数在计算机内的表示1.机器数在计算机中,因为只有“0”和“1”两种形式,所以数的正、负号,也必须以“0”和“1”表示。通常把一个数的最高位定义为符号位,用0表示正,1表示负,称为数符:其余位仍表示数值。把在机器内存放的正、负号数码化的数称为机器数,把机器外部由正、负号表示的数称为真值数。要注意的是,机器数表示的范围受到字长和数据的类型的限制。字长和数据类型定了,机器数能表示的数值范围也就定了。例如,若表示一个整数,字长为8位,则最大的正数为01111111,最高位为符号位,即最大值为127。若数值超出127,就要“溢出”。最小负数为10000000,最高位为符号位,即最小值为-128。2.数的定点和浮点表示计算机内表示的数,主要分成定点小数、定点整数与浮点数三种类型。(1)定点小数的表示法定点小数是指小数点准确固定在数据某一个位置上的小数。一般把小数点固定在最高数据位的左边,小数点前边再设一位符号位。按此规则,任何一个小数都可以写成:N=NSN-1N-2···N-M,NS为符号位(2)整数的表示法整数所表示的数据的最小单位为1,可以认为它是小数点定在数值最低位右面的一种表示法。整数分为带符号和不带符号两类。对带符号的整数,符号位放在最高位。可以写成:N=NSNnNn-1···N2N1N0,NS为符号位一般定点数表示的范围和精度都较小,在数值计算时,大多数采用浮点数。(3)浮点数的表示方法浮点表示法对应于科学(指数)计数法,如数110.011可表示为:N=110.011=1.10011×2+10=11001.1×2-10=0.110011×2+11在计算机机中一个浮点数由两部分构成:阶码和尾数,阶码是指数,尾数是纯小数。应当注意:浮点数的正、负是由尾数的数符确定,而阶码的正、负只决定小数点的位置,即决定浮点数的绝对值大小。带符号数的表示在计算机中,带符号数可以用不同方法表示,常用的有原码、反码和补码。(1)原码(2)反码(3)补码1.4.2补码的运算1.4.3逻辑运算(1)“与”运算。(2)“或”运算。(3)“异或”运算。教案授课题目第2章8086微处理器教研室主任教务科长授课时数教学方法教具授课班级与时间教学目标知识目标:本章主要讲述8086的硬件结构、外部引脚、内部寄存器的组织、和总线时序。技能目标:引脚功能和总线时序。教学重点本章主要讲述8086的硬件结构、外部引脚、内部寄存器的组织、和总线时序。教学难点引脚功能和总线时序。教学内容、方法及过程§2.18086CPU的结构2.2.18086的结构特点微处理器执行一段程序通常是通过重复执行如下步骤来完成。即:(1)

从内存储器中取出一条指令,分析指令操作码;(2)

读出一个操作数(如果指令需要操作数);(3)

执行指令;(4)

将结果写入内存储器(如果指令需要)。1.总线接口部件(1)4个段地址寄存器CS--16位的代码段寄存器DS--16位的数据段寄存器ES--16位的扩展段寄存器SS--16位的堆栈段寄存器(2)16位的指令指针寄存器IP(3)20位的地址加法器(4)6字节的指令队列。2.执行部件(1)4个通用寄存器,即AX、BX、CX,DX;(2)4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI;(3)标志寄存器Flag;(4)算术逻辑单元ALU;8086的执行部件(EU)有如下特点:(1)4个通用寄存器既可以作为16位寄存器使用,也可以作为8位寄存器使用。(2)AX寄存器也常称为累加器,8086指令系统中有许多指令都是通过累加器的动作来执行的。(3)加法器是算术逻辑部件主要部件,绝大部分指令的执行都是由加法器完成的。(4)标志寄存器共有16位,其中,7位未用状态标志有6个,即SF、ZF,PF、CF,AF和OF。符号标志SF(SignFlag):它和运算结果的最高位相同。若运算结果最高位为1,则SF=1,否则SF=0。零标志ZF(ZeroFlag):如果当前的运算结果为零,则ZF=1,否则ZF=0。奇偶标志PF(ParityFlag):如果运算结果的低8位中所含的1的个数为偶数,则PF=1,否则PF=0。进位标志CF(CarryFlag):当执行一个加法运算使最高位产生进位时,或者执行一个减法运算引起最高位产生借位时,则CF=1,否则CF=0。辅助进位标志AF(AuxiliaryCarryFlag):当加法运算时,如果第三位往第四位有进位,或者当减法运算时,如果第三位从第四位有借位,则AF=1,否则AF=0。溢出标志OF(OverflowFlag):当运算过程中产生溢出时,会使OF=1,否则OF=0。控制标志有3个,即DF、IF、TF。方向标志DF(DirectionFlag):这是控制串操作指令的标志。如果DF=0,则串操作过程中地址会不断增值,反之,如果DF=1,则串操作过程中地址会不断减值。中断标志IF(1uterruptEnableFlay):这是控制可屏蔽中断的标志。如IF=0,则CPU不能对可屏蔽中断请求作出响应,如果IF=1,则CPU可以接受可屏蔽中断请求。跟踪标志TF(TrapFlay):如果TF=1,则CPU按跟踪方式执行指令。2.2.28086的总线工作周期在8086中,一个最基本的总线周期由4个时钟周期组成①在T1状态,CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元及外设端口的地址。②在T2状态,CPU从总线上撤消地址,而使总线的低16位浮置成高阻状态,为传输数据作准备。总线的最高4位(A19~A16)用来输出本总线周期状态信息。这些状态信息用来表示中断允许状态、当前正在使用的段寄存器名等。③在T3状态,多路总线的高4位继续提供状态信息,而多路总线的低16位上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。④在有些情况下,被写入数据或者被读取数据的外设或存储器不能及时地配合CPU传送数据。这时,外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入1个或多个附加的时钟周期TW。TW也叫等待状态。在Tw状态,总线上的信息情况和T3状态的信息情况一样。当指定的存储器或外设完成数据传送时,便在“READY”线上发出“准备好”信号,CPU接收到这一信号后,会自动脱离TW状态面进入T4状态.⑤在T4状态,总线周期结束。需要指出的是,只有在CPU和内存或I/O接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。可见,如果在1个总线周期之后,不立即执行下1个总线周期。那么,系统总线就处在空闲状态,此时,执行空闲周期。§2.28086/8088的引脚信号和工作模式2.3.1最小模式和最大模式的概念所谓最小模式,就是在系统中只有8086一个微处理器。在这种系统中,所有的总线控制信号都直接由8086产生,因此,系统中的总线控制逻辑电路被减到最少。最大模式是相对最小模式而言,在此系统中,包含两个或两个以上的微处理器,其中一个主处理器就是8086,其他的处理器称为协处理器,它们是协助主处理器工作的。和8086配合的协处理器有两个。一个是数值运算协处理器8087,一个是输入/输出协处理器8089。2.3.28086的引脚信号和功能1.AD15~AD0地址/数据复用引脚(双向工作)2.A19/S6~A16/S3地址/状态复用引脚(输出)3.BHE/S7高8位数据总线允许/状态复用引脚(输出)4.NMI非屏蔽中断信号5.INTR可屏蔽中断请求信号6.RD读选通信号7.CLK时钟信号8.RESET复位信号9.READY准备就绪输入信号10.TEST测试信号11.MN/MX最小/最大模式控制信号12.GND地和VCC电源2.3.38086最小工作方式2.3.48086最大工作方式当MN/MX加上低电平时,8086CPU工作在最大模式下。此时8086CPU工作于多处理器系统。1.总线控制器82882.总线仲裁控制器82892.3.58086系统复为和启动操作在复位的时候,代码段寄存器CS和指令指针寄存器IP分别初始化为FFFFH和0000H。所以,8086/8088在复位之后再重新启动时,便从内存的FFFF0H处开始执行指令,使系统在启动时,能自动进入系统程序。在复位时,由于标志寄存器被清零,即所有标志位都被清除了,因而,系统程序在启动时,总是要通过指令来设置各有关标志。复位信号RESET从高电平到低电平的跳变会触发CPU内部的一个复位逻辑电路,经过7个时钟周期之后,CPU就被启动而恢复正常工作,即从FFFF0H处开始执行程序。§2.3存贮器组织2.4.1由段寄存器、段偏移地址确定物理地址20位物理地址=段寄存器的内容×16+偏移地址

段寄存器的内容×16(相当于左移4位)变为20位,再在低端16位加上16位的偏移地址,便可得到20位的物理地址。这里仅以8086CPU复位后如何形成启动地址为例,说明物理地址的计算方法。复位时CS的内容为FFFFH,IP的内容为0000H。复位后的启动地址由CS段寄存器和IP的内容共同决定,即:启动地址=CS×16+IP=FFFF0H+0000H=FFFF0H2.4.2段寄存器的使用教案授课题目教研室主任教务科长授课时数教学方法教具授课班级与时间教学目标知识目标:掌握指令系统的的基本格式,指令系统的操作功能及使用方法。技能目标:8086寻址方式,数据传送类指令和算术运算类指令的使用。教学重点掌握指令系统的的基本格式,指令系统的操作功能及使用方法。教学难点8086寻址方式,数据传送类指令和算术运算类指令的使用。教学内容、方法及过程§3.18086的寻址方式3.1.1操作数的寻址方式1.立即数寻址例:MOVAX,1234H这条指令的功能是:把立即数1234H送入AX中。2.寄存器寻址如果操作数就在CPU的内部寄存器中,那么寄存器名在指令中给出。这种寻址方式就叫寄存器寻址方式。3.直接寻址使用直接寻址方式时,数据总是在存储器中,存储单元的有效地址由指令直接指出,所以直接寻址是对存储器进行访问时可采用的最简单的方式。假如DS=3000H例:MOVAX,DS:[2010H]物理地址=DS×16+2010H=3000H×16+2010H=32010H指令功能是将32010H和32011H两单元的内容送到AX中。要注意的是采用直接寻址方式时,如果指令前面没有用前缀指明操作数在哪一段,则默认为段寄存器是数据段寄存器DS。4.寄存器间接寻址采用寄存器间接寻址方式时,操作数一定在存储器中,存储单元的有效地址由寄存器指出,这些寄存器可以为BX、BP,SI和DI之一,由于上述4个寄存器所黙认的段寄存器不同,这样又可以分两种情况:①以SI、DI、BX进行间接寻址,则操作数通常存放在现行数据段中。此时数据段寄存器内容加上SI、DI、BX中的16位段内偏移地址,即得操作数的地址②寄存器BP间接寻址,则操作数存放在堆栈段区域中。此时堆栈段寄存器内容加上BP中的16位段内偏移地址,即得操作数的地址。假如SS=3000H5.寄存器相对寻址在这种寻址方式中,操作数存放在存贮器中。操作数的地址是由段寄存器内容加上SI、DI、BX、BP之一的内容,再加上由指令所指出的8位或16位相对地址偏移量而得到的6.基址、变址寻址在8086中,通常把BX和BP作为基址寄存器,而把SI、DI作为变址寄存器。将这两种寄存器联合起来进行的寻址就称为基址、变址寻址。这时,操作数的地址应该是段寄存器内容×16加上基址寄存器内容(BX或BP内容),再加上变址寄存器内容(SI或DI内容)而得到的.例:MOVAX,[BX][SI]7.基址、变址相对寻址这种寻址实际上是基址、变址寻址的扩充。即操作数的地址是由基址、变址方式得到的地址再加上由指令指明的8位或16位的相对偏移地址而得到的3.1.2转移地址的寻址方式1.段内直接寻址段内直接寻址方式也称为相对寻址方式,转移的目标地址是当前IP内容和一个8位或16位的位移量DISP之和。即物理地址=CS×16+IP+DISP2.段内间接寻址这种寻址方式在段内进行,其转移的目标地址是16位寄存器或两个相邻的存储单元的内容,即以寄存器或存储器单元内容来更新IP的内容。如图3-11所示。例:JMPCXJMPWORDPTR[BX]3.段间直接寻址在这种寻址方式中,指令码中将直接给出16位的段地址和16位的段内偏移地址。例:JMPFARPTRDADD14.段间间接寻址这种寻址方式和段内间接寻址相似。但是,由于确定转移地址需要32位信息,因此只适用于存贮器寻址方式。用这种寻址方式可计算出存放转移地址的存贮单元的首地址,与此相邻的4个单元中,前两个单元存放16位的段内偏移地址;而后两单元存放的是16位的段地址,如图3-13所示。例:JMPDWORDPTR[BP][DI]§3.28086指令系统8086的指令系统大致可分为6种类型:①数据传送指令②算术运算指令③逻辑运算和移位指令④串操作指令⑤程序控制指令⑥处理器控制指令3.2.1数据传送指令8086有5类传送指令,以实现CPU的内部寄存器之间、CPU和存储器之间、CPU和I/O端口之间的数据传送。1.通用传送指令通用传送指令中包括最基本的传送指令MOV,交换指令XCHG,椎栈指令PUSH和POP,字节、字转换指令CBW和CWD。(1)最基本的传送指令指令格式:MOVOPRDl,OPRD2执行功能:该指令可把一个字节或一个字操作数从源地址传送到目的地址中去。OPRD1:可以是累加器、寄存器和存贮器。OPRD2:可以是累加器、寄存器、存贮器以及立即操作数1)在CPU各内部寄存器之间传送数据(除代码段寄存器CS和指令指针IP以外)。2)立即数传送至CPU的内部通用寄存器(即AX、BX、CX、DX、BP、SP、SI、DI),给这些寄存器赋值。3)CPU内部寄存器(除了CS和IP以外)与存贮器(所有寻址方式)之间的数据传送,与前述一样可以传送一个字节也可以传送一个字。▲注意!!①MOV指令不影响任何标志位②MOV的源操作数与目标操作数类型必须一致③MOV指令的操作数不能全为存储单元④MOV指令的操作数不能全为段寄存器⑤立即数不能为目标操作数,立即数不能送段寄存器,可以通过内存变量或除段寄存器之外的其它寄存器给段寄存器赋值MOVAX,0825HMOVDS,AX⑥CS为代码段寄存器,它是只允许读,不允许写的。(可以用跳转指令改变CS)(2)交换指令指令格式:XCHGOPRDl,OPRD2执行功能:交换指令把一个字节或一个字的源操作数与目的操作数相交换。(3)堆栈操作指令PUSHOPRD(压入堆栈指令)POPOPRD(弹出堆栈指令)2.地址传送指令8086有3条地址传送指令。(1)LEA指令指令格式:LEAOPRDl,OPRD2执行功能:该指令把源操作数OPRD2的地址偏移量传送至目的操作数OPRDl中。源操作数必须是一个内存操作数,目的操作数必须是一个16位的通用寄存器。这条指令通常用来建立串指令操作所需的地址指针。LEABX,DATA 和MOVBX,OFFSETDATA等价LEASI,BUFFER 和MOVSI,OFFSETBUFFER等价(2)LDS指令该指令完成一个地址指针的传送。地址指针包括段地址和地址偏移量。指令执行时,将段地址送入DS,地址偏移量送入一个16位的指针寄存器或变址寄存器。例如:LDSSI,[BX]是把BX所指的32位地址指针的段地址送入DS,偏移地址送入SI。(3)LES指令这条指令除将地址指针的段地址送入ES外,其他操作与LDS的类似。例如:LESDI,[BX]是把BX所指的32位地址指针的段地址送入ES,偏移地址送入DI。3.输人输出指令输入/输出指令用来完成累加器(AX/AL)与I/O端口之间的数据传送功能。执行输入指令时,CPU可以从一个8位端口读入一个字节到AL中,也可以从两个连续的8位端口读一个字到AX中。指令格式:IN累加器,端口地址执行输出指令时,CPU可以将AL中的一个字节写到一个8位端口中,或者将AX中的一个字写到两个连续的8位端口中。指令格式:OUT端口,累加器端口地址的寻址范围是64K(0000H~FFFFH),若端口地址在00H~FFH之间,可以使用直接寻址方式,否则只能由16位寄存器DX来作间接寻址。3.2.2算术运算指令8086可提供加、减、乘、除4种基本算术运算的操作指令。这些指令可实现字节或字的运算,也可以用于符号数和无符号数的运算。1.加法指令(1)不带进位的加法指令指令格式:ADDOPRDl,OPRD2指令功能:OPRDl←(OPRDl)+(OPRD2)ADD指令两个操作数相加,结果送至目的操作数。源操作数可以是累加器、通用寄存器、存贮器和立即数。目的操作数可以是累加器、通用寄存器或存贮器。例如:注意,两个存储器操作不能直接相加,段寄存器也不能参加运算。在使用时还要注意两个操作数类型一致。(2)带进位的加法指令指令格式:ADCOPRD1,OPRD2指令功能:OPRD1←(OPRD1)+(OPRD2)+CY(3)INC加1指令指令格式:INCOPRD指令功能:OPRD←(OPRD)+1这条指令对指定的操作数进行加1操作,在循环程序中常用于修改地址指针和循环次数等。其操作数可以是通用寄存器,也可以是存储器。该指令执行结果对标志位AF、OF、PF、SF和ZF有影响,而对CF位不产生影响2.减法指令(1)不带借位的减法指令指令格式:SUBOPRDl,OPRD2指令功能:OPRD1←(OPRD1)-(OPRD2)(2)带借位的减法指令指令格式:SBBOPRD1,OPRD2指令功能:OPRD1←(OPRD1)-(OPRD2)-CY(3)DEC减1指令指令格式:DECOPRD指令功能:OPRD←(OPRD)-1该指令实现对操作数的减1操作,所用的操作数可以是寄存器的,也可以是存储器。在相减时,把操作数看作为无符号的二进制数。该指令执行结果将影响标志位AF、OF、PF、SF和ZF,但对CF标志不产生影响(4)NEG求补指令指令格式:NEGOPRD指令功能:OPRD←0-(OPRD)(5)比较指令指令格式:CMPOPRDl,OPRD2指令功能:(OPRD1)-(OPRD2)该指令执行减法操作,不保存相减的结果。指令执行后两操作数的内容不变,但相减的结果影响标志位。在程序设计时,比较指令通常为程序的转移提供条件。3.乘法指令8086的乘法指令分为无符号数乘法指令和带符号数乘法指令两种。(1)无符号数乘法指令MUL指令格式:MULOPRD指令功能:若OPRD为字节数据,则执行AX←(AL)×(OPRD)若OPRD为字数据,则执行DX、AX←(AX)×(OPRD)目的操作数为:AL或AX(隐含给出)(2)带符号数乘法指令IMUL指令格式:IMULOPRD指令功能:若OPRD为字节数据,则执行AX←(AL)×(OPRD)若OPRD为字数据,则执行DX、AX←(AX)×(OPRD)目的操作数为:AL或AX(隐含给出)4.除法指令8086有两条除法指令:无符号除法指令和带符号除法指令。它们都可以进行字节或字除法运算,并且规定,8位除法的被除数在AX中;16位除法的被除数在DX与AX中,除数均由指令指出。对8位数除法,商与余数分别放在AL与AH中,对16位除法,商与余数分别放在AX与DX中。(1)无符号数除法指令DIV指令格式:DIVOPRD指令功能:OPRD为字节数据:AL←(AX)÷(OPRD)商AH←(AX)÷(OPRD)余数OPRD为字数据:AX←(DX)(AX)÷(OPRD)商DX←(DX)(AX)÷(OPRD)余数(2)IDIV带符号数除法指令指令格式:IDIVOPRD指令操作:与DIV指令相同,但被除数、除数、商、余数全部均为带符号数,且余数的符号位同被除数。即IDIV执行后,CF、OF、AF、PF、ZF、SF不确定。用IDIV指令时,如果是一个双字除以一个字,则商的范围为-32768~32767;如果是一个字除以一个字节,则商的范围为-128~127。运算结果超出了表示范围,那么会作为除数为0的情况来处理,即产生0号中断。(3)CBW字节转换为字指令指令格式:CBW指令功能:AL中的符号位扩展到AH中。若AL中的D7=0,则(AH)=00H;若AL的D7=1,则(AH)=FFH。(4)CWD字转换为双字指令指令格式:CWD指令功能:AX中的符号位扩展到DX中。若AX中的D15=0,则(DX)=0000H;若AX的D15=1,则(DX)=FFFFH。十进制调整指令(1)DAA加法的十进制调整指令执行的操作:

(AL)←把AL中的和调整到压缩的BCD格式,这条指令之前必须执行ADD或ADC指令,加法指令必须把两个压缩的BCD码相加,并把结果存放在AL寄存器中。本指令的调整方法是:

如果AF标志(辅助进位位)为1,或者AL寄存器的低4位是十六进制的A~F,则AL寄存器内容加06H,且将AF位置1;如果CF标志为1,或者AL寄存器的高4位是十六进制的A-F,则AL寄存器内容加60H,并将CF位置1。DAA指令对OF标志无定义,但影响所有其它条件标志。例:

ADDAL,BL

DAA

如指令执行前,(AL)=28,(BL)=68

执行ADD指令后,(AL)=90,CF=0,AF=1

执行DAA指令时,因AF=1而做(AL)←(AL)+06

得(AL)=96,CF=0,AF=1结果正确。

(2)DAS减法的十进制调整指令执行的操作:

(AL)←把AL中的差调整到压缩的BCD格式。这条指令之前必须执行SUB或SBB指令,减法指令必须把两个BCD码相减,并把结果存放在AL寄存器中。本指令的调整方法是:

如果AF标志为1,或者AL寄存器的低4位是十六进制的A-F,则使AL寄存器的内容减去06H,并将AF位置1。

如果CF标志为1,或者AL寄存器的高4位是十六进制的A-F,则使AL寄存器的内容减去60H,并将CF位置1。

DAS指令对OF标志无定义,但影响所有其它条件标志。(3)AAM乘法的BCD码调整指令指令格式:AAM指令功能:AX←把AL中的积调整为非压缩的BCD码格式。(4)AAD除法的BCD码调整指令对BCD码进行除法运算时,也要求除数和被除数都用非压缩的BCD码形式来表示,这是与对BCD码乘法的要求类似的地方。这里要特别注意一点,对BCD码除法运算的调整是在进行除法之前,通过对除数和被除数进行调整来实现的。调整操作如下:AL←10×AH+ALAH←03.2.3逻辑运算和移位指令1.逻辑运算指令8086逻辑运算指令包括AND(与)、OR(或)、NOT(非)、XOR(异或)指令和TEST(测试)指令。2.移位指令(1)SAL/SHL算术左移和逻辑左移指令(2)SAR算术右移指令(3)SHR逻辑右移指令3.循环移位指令(1)ROL不带进位的循环左移指令(2)ROR不带进位的循环右移指令(3)RCL带进位的循环左移指令(4)RCR带进位的循环右移指令3.2.4串操作指令在串操作中,一般假定源串在数据段中(DS),用SI作源串地址指针,而目的串在附加段中(ES),用DI作目的串地址指针。在每做一次串操作后,若是对字节进行操作,则SI和DI的值会自动加1或减l;若是对字进行操作,则SI和DI的值就自动加2或减2,是加还是减由DF标志寄存器来决定。若DF=0,则SI和DI增量修改;DF=1,则SI和DI做减量修改。在串操作前可用STD指令使DF位置l,也可以用CLD指令使DF位清0。1.MOVS串传送指令指令格式:MOVSDST,SRCMOVSB;字节传送MOVSW;字传送指令功能:(DI)←((SI))字节操作SI←(SI)±1;DI←(DI)±1;字操作SI←(SI)±2;DI←(DI)±2;该类指令执行时,将把当前数据段中用SI指针指出的源串的一个字节或一个字传送到用DI指针指向的附加段的目的地址中去。当DF=0且是字节传送时,则传送后SI、DI加1,以使指针指向下一个地址;当DF=0且是字传送时,则SI、DI加2。若DF=1,则SI、DI减1或减2。2.CMPS串比较指令指令格式:CMPSSRC,DSTCMPSB;字节比较CMPSW;字比较指令功能:((SI))-((DI))字节操作SI←(SI)±1;DI←(DI)±1;字操作SI←(SI)±2;DI←(DI)±2;该类指令执行时,将当前数据段由SI所指出的字节和字同当前附加段中由DI所指出的目的串的字节或字进行比较,把比较结果送标志位。该指令对操作数不产生影响。3.SCAS串扫描指令指令格式:SCASDSTSCASB;字节扫描SCASW;字扫描指令功能:字节操作AL-((DI))DI←(DI)±1;字操作AX-((DI))DI←(DI)±2;该类指令是串扫描指令,用于寻找内存区中指定的数据和字符。指令执行时,将AL或AX的值减去附加段中由DI所指定的字节或字,结果将改变标志位,但不改变操作数的值。4.LODS串装入指令指令格式LODSSRCLODSB;字节传送LODSW;字传送指令功能:字节操作AL←((SI))SI←(SI)±1字操作AX←((SI))SI←(SI)±2该类指令是字串装入指令。它将由SI所指定的源串字节或字装入到累加器AL或AX中去,并根据DF的值修改指针SI,以指向下一个要装入的字节或字。5.STOS串存储指令指令格式:STOSDSTSTOSB;字节存储STOSW;字存储指令功能:字节操作((DI))←(AL)DI←(DI)±1字操作((DI))←AXDI←(DI)±2该类指令是字串存贮指令。它将AL或AX中的字节或字存贮到由DI所指定的附加段中去,且根据DF的值来修改DI的值。6.REP重复操作前缀它是串指令的前缀。当某一条指令需要多次重复时,就可以加上该前缀。重复次数应放在寄存器CX中。这样每重复执行一次,CX内容减1,直到CX=0,才停止重复。7.REPE/PEPZ相等/为零时重复操作前缀它们是条件重复前缀。当条件满足时,才重复执行后面的串指令,一旦条件不满足,重复就停止。REPE/REPZ指令是相等重复指令,即只要ZF=l,且CX≠0,串指令就重复执行。8.REPNE/PEPNZ不相等/不为零时重复操作前缀它们是条件重复前缀。当条件满足时,才重复执行后面的串指令,一旦条件不满足,重复就停止。REPNE/REPNZ指令是不相等重复指令,即只要ZF=0,且CX≠0,串指令就重复执行。例:在100个字符的单元STRING中找到第一个回车符CR(ASCII码0DH),找到后将地址保存到DI,并在屏幕上显示“Y”,如果没有,显示“N”。LEADI,STRINGMOVAL,0DHMOVCX,100CLDREPNESCASBJZMATCHMOVDL,‘N’JMPDISPMATCH:DECDIMOVDL,‘Y’DISP:MOVAH,02HINT21HHLT3.2.5程序控指令1.JMP无条件转移指令这些指令都将引起程序执行顺序的改变。转移有段内转移和段间转移之分。所谓段内转移是指段地址不变,仅IP发生改变;而段间转移,CS和IP均发生改变。(1)段内直接短转移指令格式:JMPSHORTLOOP指令功能:IP←(IP)+8位偏移量其中LOOP为转移目标地址,可直接使用符号地址,又称标号。SHORT为属性运算符,指示汇编程序将地址汇编成8位偏移量,范围在-128~+127之内。(2)段内直接近转移指令格式:JMPNEARPTRLOOP或JMPLOOPl;NEAR可省略指令功能:IP←(IP)+16位偏移量其中LOOP为转移目标地址,可直接使用符号地址,又称标号。NEARPTR为属性运算符,指示汇编程序将地址汇编成16位偏移量,范围在64K之内。近程转移JMPNEARPTRLOOPl(3)段内间接转移指令格式:JMPWORDPTROPRD指令功能:IP←(OPRD地址所对应连续两单元的内容)OPRD的有效地址由寻址方式决定。OPRD可以为寄存器寻址或存储器寻址的某一种。如果是寄存器寻址,指令中直接给出寄存器号,寄存器中的内容送到IP中;如果是存储器寻址,按存储器寻址方式形成的地址所对应的单元内容给IP指针。可以直接地说,段内间接转移,其转移地址在寄存器中或存储器中。 JMPCXJMPWORDPTR[BX]远程转移是段间的转移,目的地址与JMP指令所在地址不在同一段内。执行该指令时要修改CS和IP的内容。(4)段间直接转移指令格式:JMPFARPTRLOOP指令功能:IP←LOOP的偏移地址CS←LOOP的所在段地址(5)段间间接转移JMPDWORDPTR[BP]][DI]该指令指定的双字指针的第一个字单元内容送入IP,第二个字单元内容送入CS,所定义的单元必定是双字单元。2.子程序调用和返回指令(1)段内调用和返回指令1)段内直接调用指令指令格式:CALLOPRD其中OPRD为被调用的过程或子程序的首地址。指令功能:SP¬(SP)-2,(SP)¬(IP)IP¬OPRD对应16位直接地址在程序中,OPRD一般为子程序名,汇编时汇编成16位的偏移地址。在段内直接调用时,CALL指令首先将当前IP内容压入堆栈。把子程序的首地址送IP,从而实现程序调用。2)段内间接调用指令指令格式:CALLOPRD其中OPRD为被调用的过程或子程序的首地址。指令功能:段内调用SP¬(SP)-2,(SP)¬(IP)IP¬寄存器或存储器所对应的16位数据指令执行后,把16位通用寄存器或存储单元中的内容送入IP中,CS保持不变。例如:CALLWORDPTR[SI]CALLBX3)段内返回指令指令格式:RET指令功能:IP←((SP+1),(SP))SP←(SP)+2RET指令是子程序返回的主要指令,与调用指令配合使用。(2)段间调用与返回指令1)

段间直接调用指令指令格式:CALLOPRD指令功能:SP¬(SP)-2((SP)+1,(SP))¬(CS)SP¬(SP)-2,(SP)¬(IP)IP¬OPRD所在段的直接地址CS¬直接地址所在的段1)

段间间接调用指令格式:CALLOPRD指令功能:SP¬(SP)-2((SP)+1,(SP))¬(CS)SP¬(SP)-2(SP)+1,(SP)¬(IP)IP¬OPRD所在存储单元的前两个单元的内容CS¬OPRD所在存储单元的后两个单元的内容例如:CALLDWORDPTR[BX]2)

段间返回指令指令格式:RET指令功能:IP←((SP+1),(SP))SP←(SP)+2CS←((SP+1),(SP))SP←(SP)+2即连续执行两次出栈操作,首先弹出的送入IP中,第二次弹出的送入CS中。3.条件转移指令8086有18条不同的条件转移指令。它们根据标志寄存器中各标志位的状态,决定程序是否进行转移。条件转移指令的目的地址必须在现行的代码段(CS)内,并且以当前指针寄存器IP内容为基准,其位移必须在-128~+127的范围之内。因此条件转移指令的范围是有限的,不像JMP指令那样可以转移到内存的任何一个位置上。4.循环控制指令这类指令用于控制程序的循环,其控制转向的目的地址是在以当前IP内容为中心的-128~127的范围内。这类指令用CX作计数器,每执行一次指令,CX内容减1,直到减为0,循环才结束。(1)指令格式:LOOPOPRD指令功能:CX←(CX)-1若CX≠0循环。(2)指令格式:LOOPNEOPRD指令功能:CX←(CX)-1若CX≠0且ZF=0循环。(3)指令格式:LOOPEOPRD指令功能:CX←(CX)-1若CX≠0且ZF=l循环。在LOOPE和LOOPNE两条指令中,只要两个条件中任—个不满足,循环就结束。5.处理器控制指令§3.3DOS功能调用DOS功能调用可完成I/O设备管理、存储管理、文件管理和作业管理等功能。对于用户来说,这些功能模块就是几十个独立的中断服务程序,这些程序的入口地址已由系统置入中断向量表中,在汇编语言程序中可用软中断指令直接调用。这样,用户就不必深入了解有关设备的电路和接口,只须遵照DOS规定的调用原则即可使用。1.系统功能调用方法要完成系统功能调用,基本按如下步骤:(1)

将入口参数送到指定寄存器中。(2)

子程序功能号送入AH寄存器中。(3)

使用INT21H指令。2.常用的几种系统功能调用(1)键盘输入单字符这是1号系统功能调用,使用格式如下所示:MOVAH,1INT21H(2)输出单字符这是2号系统功能调用,使用格式如下所示:MOVDL,’A’MOVAH,2INT21H执行2号系统功能调用时,将置入DL寄存器中的字符从屏幕上显示输出(或打印机打印输出)。(3)键盘输入字符串这是10号系统功能调用,其功能是将键盘输入的字符串写入到内存缓冲区中,因此必须事先在内存储器中定义一个缓冲区。(4)输出字符串这是9号系统功能调用,其功能是将指定的内存缓冲中字符串从屏幕显示输出。缓冲区中的字符串以“$”字符作为结束标志。(5)从串行输入单字符这是3号系统功能调用,其使用格式如下:MOVAH,3INT21H它没有入口参数,系统将从异步通信口串行输入的字符置入AL寄存器中。(6)向串口输出单字符这是4号系统功能调用,其使用格式如下:MOVDL,’$’MOVAH,4INT21H执行结果将DL寄存器中的字符通过异步通信口串行输出。(7)直接控制台输入/输出单字符这是6号系统功能调用,如果(DL)=0FFH,则表示从键盘输入单字符送AL寄存器中;如果(DL)≠0FFH,则表示将DL寄存器中内容送屏幕显示输出。(8)无回显直接控制台输入单字符这是7号系统功能调用,等待从标准输入设备输入单字符置入AL寄存器中,但不送屏幕显示。其使用格式如下:MOVAH,7INT21H它没有入口参数,系统等待从控制台标准输入设备输入单字符后,将其ASCⅡ置入AL寄存器中。(9)无回显键盘输入单字符这是8号系统功能调用,等待从键盘输入单字符,将其ASCⅡ码置入AL寄存器中。但不送屏幕显示,其使用格式如下:MOVAH,8INT21H它没有入口参数,与1号系统功能调用的区别仅在于键入的字符不送屏幕显示。(10)返回操作系统这是4CH号系统功能调用,其使用格式如下:MOVAH,4CHINT21H(11)设置日期这是2BH号系统功能调用,其功能是设置有效日期。例如,设置当前日期是2004年11月26日。其使用格式如下:MOVCX,2004HMOVDH,11HMOVDL,26HMOVAH,2BHINT21H(12)取得日期这是2AH号系统功能调用,其功能是将当前有效日期取到CX和DX寄存器中,存放格式与设置日期相同,其使用格式如下:MOVAH,2AHINT21H教案授课题目教研室主任教务科长授课时数教学方法教具授课班级与时间教学目标知识目标:本章重点介绍半导体存储器系统基本知识及分类,讲述微型计算机存储器系统的构成及微机系统与外部存储器的连接方法。技能目标:本章难点是存储器系统的构成和微机系统和外部存储器的连接方法。教学重点本章重点介绍半导体存储器系统基本知识及分类,讲述微型计算机存储器系统的构成及微机系统与外部存储器的连接方法。教学难点本章难点是存储器系统的构成和微机系统和外部存储器的连接方法。教学内容、方法及过程6.1存储器系统概述随着大规模、超大规模集成电路技术的发展,半导体存贮器的发展和更新日新月异。各种存取时间短、容量大、功耗低、价格便宜的器件不断涌现,为用户构成不同规模的存贮系统带来了极大的方便。本章主要介绍各类半导体存贮器并着重说明这些存贮器在工程上如何使用。6.1.1存储器的分类2、按照构成存储器材料的不同,可分为半导体存储器、磁存储器、激光存储器、纸卡存储器1、根据存储器是设在主机内部还是外部,可分为内部存储器(主存储器)和外部存储器(辅存储器)根据存储器是设在主机内部还是外部,可分为内部存储器(主存储器)和外部存储器(辅存储器)内存用来存储当前运行所需要的程序和数据,以便直接与CPU交换信息。相对外存而言,它容量小,存取速度快,价格较高;外存存放当前暂不参与运行和永久保存的一些程序和数据,在CPU需要处理时再成批的与内存交换。它容量大,价格较低,但存取速度慢。按照构成存储器材料的不同,可分为半导体存储器、磁存储器、激光存储器、纸卡存储器RAM随机读写存储器(RandomAccessMemory)ROM只读存储器(ReadOnlyMemory)它的内容可读出、写入或改写,主要用于存放各种现场的输入、输出数据、中间计算结果及作堆栈用等。内容只可读出不可写入,最大优点是所存信息可长期保存,断电时,ROM中的信息不会消失。主要用于存放固定的程序和数据,通常用它存放引导装入程序。Cache高速缓冲存储器CPU主存储器Cache是位于CPU和主存(DRAM)之间规模较小、速度很高的静态存储器(SRAM)。在Cache中通常存放CPU当前用的最多的程序和数据,是使CPU能以最高的速度工作。设置高速缓冲存储器是高档微型计算机中最常用的一种方法,目前一般也将它们或它们的一部分制作在CPU芯片中。6.1.2存储器的性能指标1、存储容量用某一芯片有多少个存储单元,每个存储单元存储若干位来表示,是以bit为单位的。存储容量=地址单元数×数据线位数2、存取时间即存取芯片中某一个单元的数据所需要的时间。3、其它指标可靠性、功耗、价格等6264芯片容量为8k×8bit[例1]①512×4②1K×4③2K×1④8K×8[例2]欲组成16K×8的存储器,需存储器2114(1K×4)多少片?解:所需芯片数应为(8/4)×(16K/1K)=2×16=32(片)问题1、现有1024×1bit静态RAM芯片,欲组成64K×8bit存储容量的存储器,试求需要多少片RAM芯片?多少芯片组?多少根片内地址选择线?多少根芯片选择线?2、设有一个具有14位地址和8位字长的存储器,问:①该存储器能存储多少位的信息?②如果存储器由1K×1bit的静态RAM芯片组成,需多少芯片?答案:512片64组10根6根答案:128Kbit128片6.2读写存储器(RAM)静态读写存储器SRAM(6264)读写存储器(RAM)动态读写存储器DRAM(2164)只读存储器EPROM(2764)EEPROM62648K×8bit的SRAM芯片6.2.1静态读写存贮器(SRAM)2、工作过程写入数据:在芯片的A12~A0上加上要写入单元的地址;在D7~D0上加上要写入的数据;使CS1和CS2同时有效;在WE上加上有效的低电平,OE无效高电平。3、半导体存储器与CPU的连接存储器接口的设计存储器片选控制方法:常用的片选控制方法有线选法、全译码法、局部译码法等几种。(1)线选法线选法除将低位地址直接接片内地址外,将余下的高位地址线,分别作为各个存储器芯片的片选控制信号,如图所示。(2)全地址译码法例1:存储器62648KB芯片工作在F0000H—F1FFFH内存空间,画出和系统的连线图。(3)部分地址译码方式6.2.2DRAM单管基本存储电路读操作——

◆行地址译码选中某一行,该行上所有基本存储电路中的管子T全导通,

于是连在每一列上的刷新放大器读取该行上各列电容C的电压。

◆刷新放大器灵敏度高,将读得的电压放大整形成逻辑“0”或“1”的电平。

◆对列地址进行译码产生列选信号,列选信号将被选行中该列的基本存

储电路内容读出送到芯片的数据输入/输出I/O线上。写操作——

相应行、列选择线为“1”,数据输入/输出I/O线上的信息经刷新放大

器驱动后再通过T管加到电容C上。刷新(再生)——

◆在读/写过程中,某条行选线为“1”,该行上所有(各列)基本存储电

路都被选通,由刷新放大器读取电容C上电压;

◆对非写的存储电路,刷新放大器读出、放大、驱动之后又立即对之重

写,进行刷新(又称再生),维持电容C上的电荷,保持该存储电路中

的内容(即状态)不变。

◆电容C是MOS管的极间电容,容量很小,读出时电容C上的电荷又被寄

生的分布电容分泄,因此读出后原来C上的电压变得极小,是破坏性

读出,读后必须重写。刷新操作周期——

◆电容C上电压将按exp(-t/(RC))指数规律放电,因此DRAM须不断进行读

出和再写入,以使泄放的电荷得到补充,即要进行刷新(再生)。虽然

每次读/写操作都进行了刷新,因为读/写操作是随机的,不能保证

对DRAM中的所有基本存储电路都按时刷新,因此必须设置专门的电路

来对DRAM中的所有存储电路周期性地进行刷新操作。

◆每个DRAM存储单元两次刷新的间隔时间随温度而变化,一般为1~

100ms。在70℃情况下典型的刷新时间不超过2ms。动态随机存取存储器DRAM典型存储器——动态RAM存储器芯片Intel2164A(2)内部结构•存储体:64K×1;•地址锁存器:Intel2164A采用双译码方式,其16位地址信息要分两次送入芯片内部,在芯片内部有一个能保存8位地址信息的地址锁存器;•数据输入缓冲器:用以暂存输入的数据;•数据输出缓冲器:用以暂存要输出的数据;•1/4I/O门电路:由行、列地址信号的最高位控制,能从相应的4个存储矩阵中选择一个进行输入/输出操作;典型存储器——动态RAM存储器芯片Intel2164A•行、列时钟缓冲器:用以协调行、列地址的选通信号;•写允许时钟缓冲器:用以控制芯片的数据传送方向;•128读出放大器:与4个128×128存储阵列相对应,接收由行地址选通的4×128个存储单元的信息,经放大后,再写回原存储单元,是实现刷新操作的重要部分;•1/128行、列译码器:分别用来接收7位的行、列地址,经译码后,从128×128个存储单元中选择一个确定的存储单元,以便对其进行读/写操作。将动态存储器所存放的每一比特信息读出并照原样写入原单元的过程称为动态存储器的刷新。刷新过程行地址循环一遍,可将整个芯片的所有地址单元刷新一遍。6.3只读存储器ROM第1类ROM,其中的内容是在厂家制造时采用掩模操作或称掩模编程而建立的,用户无法改变这种ROM器件中的内容,这类ROM称为掩模ROM,简称ROM。第2类ROM中的内容是由用户根据需要借助于专门的设备来建立的,这类ROM称为可编程只读存储器(PROM)。如同掩模编程的ROM一样,PROM一旦编程后,其中的内容就再也不能改变了。第3类ROM不仅可由用户编程,而且还可以用特殊的设备擦除其中的内容并重复编程多次,它们被称为可擦可编程只读存储器(EPROM)。根据擦去信息的方式不同,EPROM分为紫外线擦除EPROM(简称EPROM)和电擦除的EPROM(ElectricallyEPROM)两种,后者简称EEPROM(即E2PROM)。EEPROM用电信号擦除信息的时间为若干毫秒,比紫外线擦除信息的时间短得多。EEPROM的主要优点是可按字节进行擦除和重新编程。本节介绍掩模ROM、PROM和EPROM的基本原理。掩模只读存储器ROM可编程只读存储器PROM可擦可编程只读存储器EPROME2PROMFLASH存储器(FlashMemory)原理上,FLASH属于ROM型,但可随时改写信息功能上,FLASH相当于RAM特点:可按字节、区块(Sector)或页面(Page)进行擦除和编程操作快速页面写入:先将页数据写入页缓存,再在内部逻辑的控制下,将整页数据写入相应页面由内部逻辑控制写入操作,提供编程结束状态具有在线系统编程能力具有软件和硬件保护能力内部设有命令寄存器和状态寄存器内部可以自行产生编程电压(VPP),所以只用VCC供电特点1、使内部存储信息在不加电的情况下保持10年左右2、可以用比较快的速度将信息擦除以后重写,反复擦写达几十万次,可以实现分块擦除和重写,也可以按字节擦除与重写。还具有非易失性,可靠性能好,速度快以及容量大等许多优点27648K×8bit的EPROM芯片教案授课题目第7章输入输出接口教研室主任教务科长授课时数教学方法教具授课班级与时间教学目标知识目标:本章重点介绍输入输出接口的基本概念和输入输出接口的功能;着重讨论不同外设数据传送的不同方法及简单接口的应用。技能目标:掌握无条件传送和查询传送的工作原理,难点是接口芯片的应用。教学重点本章重点介绍输入输出接口的基本概念和输入输出接口的功能;着重讨论不同外设数据传送的不同方法及简单接口的应用。教学难点掌握无条件传送和查询传送的工作原理,难点是接口芯片的应用。教学内容、方法及过程7.1微型计算机的输入/输出接口7.1.1输入/输出接口1.I/O接口的功能一个接口的基本功能是在系统总线和I/O设备之间传输信号,提供缓冲作用,以满足接口两边的时序要求。寻址功能输入输出功能联络功能速度匹配功能数据格式转换功能中断管理功能可编程功能2.外设接口的编址方式每个接口部件都含有一组寄存器,CPU与外设进行数据传送时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口,每个端口都有一个端口地址。系统对各种寄存器的操作,实际上是通过寻址,对个端口地址的选择和操作,因此外设接口(I/O端口)有两种编址方式。(1)外设地址与内存地址统一编址这种编址方式又称为存储器映射编址方式。在这种编址方式中,将外设接口地址和内部存储器地址统一安排在内存的地址空间中。即把内存地址分配给外设,由外设来占用这些地址。用于外设的这些地址,存储器不能再使用。(2)外设与内存独立编址在这种编址方式中,内存地址空间和外设地址空间是相互独立的。例如,在8086CPU中,内存地址是连续的1M字节,从00000H~FFFFFH,而外设的地址范围从0000H~FFFFH。它们相互独立,互不影响。7.1.2输入/输出的控制方式 概括起来,在微型计算机系统中,主要有如下4种传送方式解决上述问题: ①无条件传送 ②查询传送 ③中断传送 ④直接存贮器存取(DMA)方式1.无条件传送 在微机系统中,有一些简单外设.当它们工作时,随时都准备好接收CPU的输出数据或它们的数据随时都是准备好的,CPU什么时候读均可以正确地读到它们的数据。也就是说外设无条件准备好向CPU提供数据或接收CPU送来的数据。在CPU与这样的外设交换数据的过程中,数据交换与指令的执行是同步的。因此也有人称其为同步传送。 无条件传送方式是一种简单的输入输出方式,一般用于控制CPU与低速接口之间的信息交换.例如,开关、温度、压力流量等(A/D)转换器。由于这些信号变换缓慢,当需要采集这些数据时,外设已经将数据准备就绪了,因此无需检查端口的状态,就可以立即采集数据。由于数据保持时间相对于CPU的处理时间长得多,故输入端可直接用输入缓冲器与CPU的数据总线相连。若外设是输出设备,一般要求接口有锁存能力,也就是CPU送给外设的数据应该在接口中保持一段时间,其原因是外设的速度较慢,所以要求CPU送到接口的数据能保持到外设动作相适应的时间。开关K看作一个简单的外设。K的状态是确定的,要么闭合,要么打开。当计算机通过外设接口读K的状态时,一定会读到指令执行时刻K的状态. 当CPU读接口地址FFF7H时,或门输出为低电平。该电平使输入接口三态门导通,则开关K的状态就由数据线D0读到CPU。判断读入数据D0=0时,K闭合;D0=1时,K打开。【例7-1】图中外设是简单的发光二极管.此外设的接口是用锁存器来实现的.锁存器在打入脉冲CP上升沿将输入端D的数据锁存在它的输出Q端。编写点亮二极管的程序。【例7-2】类似于例1中,让接在Q0~Q7上的二极管自上而下轮流点亮3s,编写程序实现。

2.查询方式 无条件传送对于那些慢速的或总是准备好的外设是适应的。但是,许多外设并不总是准备好的。CPU与这类外设交换数据可以采用程序查询方式。 所谓查询方式就是微型计算机利用程序不断地询问外部设备的状态,根据它们所处的状态来实现数据的输入输出。 为了实现这种工作方式,要求外部设备向微型计算机提供一个状态信息。微型计算机校验外部设备所提供的状态信息,即查询外部设备,以便确定它的下一步操作。(1)单一外设的查询工作 最简单的情况是单一外设的情况。其采用查询方式传送数据的过程如下所述。如果CPU要从外设接收一个数据,则CPU首先查询外设的状态,看外设数据是否准备好,若没有准备好,则等待;若外设已将数据准备好,则CPU从外设读取数据,接收数据后,CPU向外设发响应信号,表示数据已被接收。外设收到响应信号后,即开始下一个数据的准备工作。 若CPU需要向外设输出一个数据,同样,CPU首先查询外设的状态,看其是否空闲,若正忙,则等待;若外设准备就绪,处于空闲状态,则CPU向外设送出数据和输出就绪信号。就绪信号用来通知外设;CPU送来有效数据。外设接收数据后,向CPU发出数据已收到的状态信息。这样,一个数据的输出过程就告结束。【例7-3】如图7-5所示,现欲将48000H为首地址的顺序100个单元的数据,利用查询方式输出到外设。外设经输入输出接口与8086的系统总线连接。CPU通过三态接口(74LS244)可以查询外设的状态,而且当外设状态信号=1时,可以接收CPU由锁存器(74LS273)输出的数据。=0时,表示外设处于忙状态,不能接收数据。 程序如下:图7-5查询工作方式的I/O接口(2)多个外设查询工作方式 上面我们介绍了单个外设利用查询方式的工作情况。当系统中有多个外设时,查询方式工作的流程成图如图7-6所示。 从图可以看出,CPU逐个外设进行查询。若发现那个外设准备就绪,就对该外设实施数据传送。然后再对下一外设查询,依次循环。从而可以实现,在查询过程中,CPU不能做别的事情,这就大大降低了CPU的效率。而且,假如某一外设刚好在查询过后处于就绪状态,那么它必须等到CPU查询完所有外设,再次查询此外设时才能发现它处于就绪状态,而后对此外设服务。这样就不能对外设进行实时数据交换,这对许多实时性要求较高的外设来说,就有可能丢失数据。§7.2简单接口7.2.1三态门接口芯片 根据前面内容的介绍,大家已经了解到主机与外设之间的连接必须通过接口芯片来完成信息的传送,如:信息的放大、隔离以及锁存。接口芯片的类型非常繁多,在此我们介绍几种常用的简单的接口芯片。 一个典型的三态门接口芯片(74LS244)如图7-7所示。其中,DO0~DO7为8个输入端,IO0~IO7为8个输出端,E1E2是两个控制端,低电平有效,当控制端有效时,三态门导通;当它们为高电平时,相应的三态门口呈现高阻状态。三态门只能作为输入信号接口而不能作为输出接口,这是因为74LS244三态门本身没有对信号的保持或锁存能力。7.2.2锁存器接口芯片 前面提到的三态门器件,可以用作固定状态的输入接口。但是,由于它没有保持(或称锁存)数据的能力,无法直接用它实现数据的输出接口。最简单的输出接口芯片74LS374,它是一种带有三态输出的锁存器,其引线图如图7.8所示。其中D0~D7为8个输入端,Q0~Q7为8个输出端,为允许输出信号,低电平有效,CP脉冲上升沿锁存,与8086CPU连接时,一般接ALE引脚。只有当=0时,74LS374的输出三态门才导通。=1时,74LS374的输出呈现高阻状态。由于74LS374是8位的带有三态输出的锁存器,具有更大的使用灵活性,故它既可以作为输入接口,又可以用作输出接口。7.2.3简单接口举例1.已知8D锁存器74LS374用作输出接口,与CPU总线连接图如图7-9所示。试编制一个接口程序,使其在Q0输出端产生一个周期和幅度均任意的方波,如图所示。图7-9方波输出接口电路2.LED数码管(1)LED数码管分为共阳和共阴两种结构,在此只介绍一种共阳封装的LED数码管,如图7-10所示。(2)接口电路 这段七段LED数码管与微机系统总线有多种接口方式。此处介绍用74LS138作为译码器进行选片,用74LS273作为输出接口,用三态门作为按钮K的输出接口,其连接图如图7-11所示。 在图7-11中,要使数码管显示某数字或符号,必须用软件来产生相应的数据。这是因为接口电路中没有硬件译码器。例如,要显示数字3,则LED的a、b、c、d、g各段应亮而e、f应不亮。结合图,则应向74LS273写数据4FH。为了方便,可在内存中建立有关显示的数字(或符号)与相对应输出数据的对应表。 下面一段程序可判断按钮的状态。当K闭合时,显示3,当K断开时显示6。图7-11LED数码管及按钮的一种接口电路教案授课题目第8章并行通信和并行接口8255A教研室主任教务科长授课时数教学方法教具授课班级与时间教学目标知识目标:本章重点掌握计算机系统并行通信的概念;并行接口Intel8255A的结构功能、三种工作方式和应用。技能目标:难点是并行接口Intel8255A的工作方式选择及特点,8255A与8086系统的连接应用。教学重点本章重点掌握计算机系统并行通信的概念;并行接口Intel8255A的结构功能、三种工作方式和应用。教学难点难点是并行接口Intel8255A的工作方式选择及特点,8255A与8086系统的连接应用。教学内容、方法及过程8.1并行通信与并行接口8255A8.1.1并行通信 所谓通信就是计算机与外部设备或者计算机之间的信息交换、数据传输,在计算机中,通信是通过输入输出(I/O)接口电路来实现的与外部设备或者其他的计算机数据传输及信息交换的。计算机的两种基本通信方式是并行通信和串行通信。 并行通信是指将构成一组数据的各位同时进行传送的一种通信方式,并行通信强调的是被传送的各位同时输入或输出,例如一组8位数据或16位数据的同时传入或传出。 并行通信的优点是传输速度快,信息率高,缺点是电缆耗损高。由于同时传送所需的每一位二进制位都需要一根通信电缆,在进行长距离传输时,电缆的损耗会成为突出的问题,而且传输的可靠性随着距离的增加而下降,因此并行通信适用于数据传输率较高、传输距离较短的场合。8.1.2并行I/O接口 实现并行通信的接口称为并行接口。一个并行接口可以设计成负责输入信息的输入接口,也可以设计成负责输出信息的输出接口,如果设计成同时具有输入/输出功能的接口就是所谓的双向通信接口。在计算机系统中连接打印机的接口、显示器接口就是输出接口;连接磁盘驱动器的接口是双向接口。 并行接口可以分为不可编程的硬件接口和可编程接口。8.2并行I/O接口芯片8255A8.2.18255A的外部引脚及内部结构1.8255A的外部引脚D7~D0为双向数据信号线,用于8255A与系统数据线相连,传送CPU与8255A之间的数据、控制信息、状态信息。 RD(输入):8255A读信号,低电平有效。当有效时,CPU从8255A的指定端口读取数据或状态信息。通常接系统总线的信号。 WR(输入):8255A写信号,低电平有效。当有效时,CPU向8255A指定端口写入控制字或数据。通常接系统总线的信号。 CS(输入):片选信号,当它为低电平(有效)时,才能选中该8255A芯片,使

温馨提示

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

最新文档

评论

0/150

提交评论