收藏 分享(赏)

微机原理与接口技术_第一章(概述).ppt

上传人:hyngb9260 文档编号:5377250 上传时间:2019-02-25 格式:PPT 页数:310 大小:3.18MB
下载 相关 举报
微机原理与接口技术_第一章(概述).ppt_第1页
第1页 / 共310页
微机原理与接口技术_第一章(概述).ppt_第2页
第2页 / 共310页
微机原理与接口技术_第一章(概述).ppt_第3页
第3页 / 共310页
微机原理与接口技术_第一章(概述).ppt_第4页
第4页 / 共310页
微机原理与接口技术_第一章(概述).ppt_第5页
第5页 / 共310页
点击查看更多>>
资源描述

1、微机原理与接口技术,开始,微机原理与接口技术,微处理器,汇编语言,接口,第一章 概论(预备知识),第二章 8086微处理器,第三章 寻址方式与指令系统,第四章 汇编语言程序设计,第五章 第十一章,接口 计数器定时器 串并行接口 中断DMA控制器 存储器 总线,课时分配,共:周416周64学时 第一章 4学时 第二章 18学时处理器结构:4学时,处理器引脚功能:4学时,最小模式系统:2学时,操作和时序:2学时,中断及中断向量表:2学时,存储器结构:2学时,习题与复习:2学时 第三章 16学时寻址方式:6学时,指令系统:8学时,复习与习题:2学时 第四章 20学时汇编语言上机过程:2学时,汇编语言

2、程序实例:8学时,上机实习:8学时,复习与习题:2学时,第一章 概述,1.1 微型计算机的发展 1.2 微型机的分类 1.3 微型机系统的组成 1.4 微型计算机中数的编码与字符表示(重点) 1.5 评估微型机性能的主要指标 1.6 微型计算机的应用 1.7 浮点数表示法(补充) 习题提问,1.1 微型计算机的发展,1.1.1 微型计算机的发展史发展历史:电子管、晶体管、集成电路、大规模和 超大规模集成电路发展方向:微型化、智能化、高性能、低成本,1.1 微型计算机的发展,1.1.2 微型计算机的发展特点数据总线宽度(如Pentium 的64位数据线)、集成度、时钟频率;精简指令集技术(针对复

3、杂指令集而言)、数字协处理(如进行数值运算的8087协处理器)和二级高速缓存技术;Pentium中采用的超标量结构双路执行流水线技术( Pentium能同时驱动两个总线周期,一个机器周期中执行多条指令)、分支预测技术、强化分支预测等。如IF 条件 THEN GOTO ELSE GOTO ,数据总线负责整个系统的数据流量的大小, 而数据总线宽度则决定了CPU与二级缓存、内存 以及输入/输出设备之间一次数据传输的信息量。,1.2 微型机的分类,分类 按机器组成分:位片式、单片式和多片式 按制造工艺分:MOS(金属氧化物半导体)型和双极型 按字长分:4位、8位、16位、32位和64位 按结构分:单片

4、型、单板型和微型机 从操作系统角度分:单用户型和多用户型,组成硬件系统: 软件系统:,CPU(运算器和控制器)、存储器、输入/输出设备,系统软件、支撑软件(各种编译程序)、应用软件,冯.诺依曼的结构:运算器、控制器、存储器、输入设备、输出设备,1.3 微型机系统的组成,数的编码与字符表示(1),1.4.1 进位计数制与转换 各种数制的基数 某种进制数的基本组成数字 二进制(B):0、1 八进制(O):0、1、2、3、4、5、6、7 十进制(D):09 十六进制(H):09、A、B、C、D、E、F 各种数制之间的相互转换方法: 1011110.101B= _ O= _ H= _ D 296D=

5、_ B 65535D= _ B 0FFH=_D,136.5,5E.A,94.625,100101000,1111111111111111,255,数的编码与字符表示(2),1.4.2 计算机中数的表示计算机中的数是用二进制表示的,有时要处理的全部是正数就没有符号问题,如表示地址的数,这样的数称为无符号数。无符号数的表示很简单,8位无符号数表示的数的范围为0255;16位表示065535有符号数中数的符号也用二进制位表示,一般用最高有效位表示符号,最高位是0为正数,最高位是1为负数。符号数最常用的三种编码方式:原码、反码与补码(电脑中一般是用补码和反码来表示数),数的编码与字符表示(3),1、原

6、码:实际上是数值化的符号位加上真值的绝对值 真值0在原码中的表示形式:,+0原=0000 -0原=1000,8位原码表示的数的范围是: 16位原码表示的数的范围是:,-127+127 -32767+32767,数的编码与字符表示(4),2、反码:一个负数的原码符号位不动,其余位取反。正数原玛与反码相同。 真值0在反码中的表示形式:8位反码表示的数的范围是:16位反码表示的数的范围是:,+0反=0000 -0反=1111,-127+127-32767+32767,3、补码:一个负数的补码由其反码末位加1求得。正数补码与原码同。补码表示中: +0补=0000; -0补=-0反+1=1111+1=1

7、 0000 所以补码表示中,0是唯一的。 8位补玛表示的数的范围是: 16位补玛表示的数的范围是:,数的编码与字符表示(5),-128+127 -32768+32767,试题,例2:写出+127和 127的 8位 原码、反码、补码 127:原反补01111111 127:原11111111 反10000000 补10000001 例3:存在二进制编码 1111 1101,求解下列各题 将 1111 1101 看作一个普通的二进制数,则其代表的十进制数是( ); 若x原=1111 1101,则x=( ) 若x反=1111 1101,则x=( ) 若x补=1111 1101,则x=( ),253,

8、125,2,3,1.4.3 字符表示法,ASCII码的表示(用7位二进制编码表示 ? 个字符) 8421 BCD码(二十进制码) 计算机中还有一种数值数据的表示方法:每一位十进制数用4位二进制数表示,称为二进制编码的十进制数-BCD码或称二十进制编码。它具有二进制形式,又具有十进制特点。四位二进制可表达十六种状态,BCD码只需要十种,所以有6中冗余,从16种状态中选取10个状态表示十进制数09的方法很多,可以产生多种BCD码。,A:41H a:61H 0DH、0AH、31H,128,1.5 评估微型机性能的主要指标,1.5.1 字长 字长决定了计算机内部一次可以处理的二进制代码位数. 字长与速

9、度、字长与计算精度的关系如何?1.5.2 指令执行时间指令执行时间的长短反映计算机速度的快慢,根据指令的格式执行不同指令需要的时间不同,因此就如何测量计算机运行速度的问题,有如下几种方法:1.直接给出CPU的时钟频率,即主频 2.根据不同类型指令出现的频率乘上不同的系数,求平均值 3.以执行时间最短的指令为标准来估算运算速度,決定着运算器、通用寄存器和数据总线的位数,CPU内部的时钟频率,是CPU进行运算时的工作频率。一般来说,主频越高,一个时钟周期里完成的指令数也越多,CPU的运算速度也就越快。但由于内部结构不同,并非所有时钟频率相同的CPU性能一样。,什么是超频?,什么是主频、外频、倍频、

10、超频?,主频,就是CPU的时钟频率,简单说是CPU运算时的工作频率(1秒内发生的同步脉冲数)的简称。单位是Hz(赫兹)。它决定计算机的运行速度,随着计算机的发展,主频由过去MHZ发展到了现在的GHZ(1G=1024M)。通常来讲,在同系列微处理器,主频越高就代表计算机的速度也越快,但对与不同类型的处理器,它就只能作为一个参数来作参考。另外CPU的运算速度还要看CPU的流水线的各方面的性能指标。由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。因此主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。说到处理器主频,就要提到与之密切相关的

11、两个概念:倍频与外频。,什么是主频、外频、倍频、超频?,外频是CPU的基准频率,单位也是Hz(赫兹)。外频是CPU与主板之间同步运行的速度,而且目前的绝大部分电脑系统中外频也是内存与主板之间的同步运行的速度,在这种方式下,可以理解为CPU的外频直接与内存相连通,实现两者间的同步运行状态;,什么是主频、外频、倍频、超频?,倍频即主频与外频之比的倍数。主频、外频、倍频,其关系式:主频外频倍频。早期的CPU并没有“倍频”这个概念,那时主频和系统总线的速度是一样的。随着技术的发展,CPU速度越来越快,内存、硬盘等配件逐渐跟不上CPU的速度了,而倍频的出现解决了这个问题,它可使内存等部件仍然工作在相对较

12、低的系统总线频率下,而CPU的主频可以通过倍频来无限提升(理论上)。我们可以把外频看作是机器内的一条生产线,而倍频则是生产线的条数,一台机器生产速度的快慢(主频)自然就是生产线的速度(外频)乘以生产线的条数(倍频)了。,什么是主频、外频、倍频、超频?,超频:目前CPU的生产可以说是非常精密的,以至于生产厂家都无法控制每块CPU到底可以在什么样的频率下工作,厂家实际上就已经自己做了次测试,将能工作在高频率下的CPU标记为高频率的,然后可以卖更高的价钱。但为了保证它的质量,这些标记都有一定的富余,也就是说, 一块工作在600MHZ的CPU,很有可能在800MHZ下依然稳定工作,为了发掘这些潜在的富

13、余部分,我们可以进行超频。现在的厂商基本上都已经把倍频锁死,要超频只有从外频下手,通过倍频与外频的搭配来对主板的跳线或在BIOS中设置软超频,从而达到计算机总体性能的部分提升。所以在购买的时候要尽量注意CPU的外频。,back,1.5 评估微型机性能的主要指标,1.5.3 内部存储器容量(衡量单位是什么?)1.5.4 外部设备配置,字节,1.6 微型计算机的应用,科学计算 信息管理系统 工业控制过程(实时控制) 网络通信技术 智能仪器表与家用电器 计算机辅助设计与制造,补充 数的定点表示和浮点表示,1. 数的定点表示法 2. 数的浮点表示法,1. 数的定点表示法,规定一个固定的小数点的位置,并

14、把用这种方法表示的数称为定点数。MSB表示最高有效位, LSB表示最低有效位。 当小数点固定在MSB的前面时,定点数为纯小数,当小数点固定在LSB的后面时,定点数为纯整数。,数的浮点表示法,将一个二进制数用一种普通形式表示为:2E F,其中E表示阶码,F 称为尾数。我们把用阶码和尾数表示的数称为浮点数。前半部分e0e1e2为阶码,其中e0为阶符 后半部分N0M-1M-2为尾数,其中N0为尾符 阶码通常为带符号的整数,尾数通常为带符号的纯小数。 例: 写出二进制数-110.0011在计算机中的浮点数形式。设阶码取4位补码,尾数是8位原码。解: -110.0011= -0 . 11000112+3

15、浮点数形式为:,浮点数规格化,为了使浮点数有一个标准形式,也为了充分利用尾数的有效数位提高运算精度,一般采用浮点数的规格化表形式。所谓规格化是指尾数M的最高位M-1=1必须是有效数字位。对于原码尾数,无论是正数、负数,M-1=1时是规格化形式;若尾数是补码,当N是正数时,M-1=1,N是负数时,M-1=0才是规格化形式。可以发现,尾数是补码时的规格化形式,尾数最高位与符号位相反。 浮点数运算过程中,一旦运算结果出现非规格化形式,立即移动尾数,将其转换成规格化形式,与此同时,阶码相应有所加或减,保证N值不变。,第一章 习题,开始,各种数制之间的相互转换方法: 1011110.101B=_O=_H

16、=_D 296D=_B 4532D=_B 4098D=_B 65535D=_B 0FFH=_D,例2:写出+127和 127的 8位 原玛、反码、补码 例3:存在二进制编码 1111 1101,求解下列各题 将 1111 1101 看作一个普通的二进制数,则其代表的十进制数是( ); 若x原=1111 1101,则x=( ) 若x反=1111 1101,则x=( ) 若x补=1111 1101,则x=( ),例4:D8H=1101 1000B,看作无符号数时,其代表的十进制数为?,看作是符号数的补码时,代表的十进制数是?,例 :某计算机运算结果如下所示,阶码是4位以2为底的补码,尾数取8位定点

17、小数(含符号位)问:(1)若该尾数是原码时,求其计算机中规格化形式 (2)若尾数是补码,求其规格化形式,解(1)因为尾数是原码,最高位M-1=1,所以已经是规格化形式了(2)因为尾数是补码,尾符和M-1都是1,所以不是规格化形式。尾数左移,低位补0,相当于小数位右移,直到M-1=0为止,因为尾数移动4位,阶码需减4,由0110变为0010,由此得到规格化形式为,8086的编程结构 8086的工作模式及引脚功能 最小模式系统 8086的操作和时序 8086的存储器及I/O组织 内容回顾 习题提问,第二章 8086微处理器,基础知识:8086字长为16位,内存空间为1M2.1.1 8086的编程结

18、构编程结构是指从程序员和使用者的角度看到的结构。8086CPU由执行部件EU(Execution Unit)和总线接口部件BIU(Bus Interface Unit)两部分组成(如图所示)。,地址加法器,用于产生20位物理地址。假设CS=8200H,IP=1234H,则当前指令所在内存的物理地址为83234H,指令队列缓冲器用于解决以往CPU取指令期间,运算器的等待问题,从指令队列缓冲器取出指令,进行译码,产生各种控制信号,控制各部件的工作,1、执行部件EU,功能:负责指令的执行 组成: 通用寄存器组 专用寄存器组 算术逻辑运算单元ALU 标志寄存器FR 内部控制逻辑EU寄存器是指在指令执行

19、过程中用于临时存放数据或结果的寄存单元 参看图,(1)通用寄存器,4个16位的通用寄存器:AX、BX、CX、DX。也可看作是8个8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL。AX(AH、AL)累加器:有些指令约定AX或AL寄存器为累加器,如乘法、除法、输入/输出指令等。BX(BH、BL)基址寄存器:可用作间接寻址的地址寄存器和基地址寄存器,BH、BL可用作8位数据寄存器。CX(CH、CL)计数器:在循环和串操作中充当计数器,指令执行后,CX寄存器内容自动变化。DX(DH、DL)数据寄存器:除用作通用寄存器外,在I/O指令中用作口地址寄存器,乘除指令中做辅助累加器。,用在INT 2

20、1H指令中,用来送功能号。,(2)专用寄存器组,8086CPU除有4个16位的通用寄存器外,还有4个16位专用寄存器,分别是:基数指针寄存器BP(Base Pointer Register)堆栈指针寄存器SP(Stack Pointer Register)源变址寄存器SI(Source Index Register)目的变址寄存器DI(Destination Index Register)BP、SP常用来指示相对于段起始地址的偏移量。BP一般用于访问堆栈段任意单元,SP用于访问堆栈段栈顶单元。SI、DI可用作寄存器间接地址、相对寻址、基址变址寻址、相对基址变址寻址寄存器,访问数据段任意单元。,

21、(3)算术逻辑单元(ALU),完成16位或者8位的算术逻辑运算。,(4)标志寄存器(Flag Register),标志寄存器共有16位,其中7位未用,内容如下:,根据功能,8086的标志分为条件标志和控制标志。条件标志(6位)用于寄存程序运行的状态信号(由硬件根据运算结果自动设定),这些标志往往用作后续指令判断的依据;控制标志(3位)由软件设定,用于串处理的方向控制、中断响应允许控制及单步陷阱控制。,进位标志,当加法最高位产生进位或减法最高位产生借位时,CF=1,否则CF=0,辅助进位标志(半进位),字节运算时低半个字节向高半个字节有进位或借位时,AF=1,奇偶标志,若运算结果的低8位操作数中

22、有偶数个1,PF=1,否则PF=0,0标志,当运算结果为0时,ZF=1,符号标志,接受运算结果最高位的值,当最高位为1时,SF=1,表示该数是负数,陷阱标志,用于单步操作,TF=1时,每条指令执行后产生陷阱,进入系统控制程序,中断允许标志,IF=1时允许可屏蔽中断,IF=0则禁止。该标志可由中断控制指令设置或清除,方向标志,在串处理指令中,用于控制串处理的方向。当DF=0时,每次操作后变址寄存器SI、DI自动增量,处理方向由低地址向高地址;当DF=1时自动减量。该标志由方向控制指令设置或清除,溢出标志,当运算结果超出了机器所能表示的数的范围时,会产生溢出,这时OF=1,否则OF=0,有关溢出的

23、判断方法,通常CF用于无符号数运算结果的溢出判断,而OF则用于有符号数运算结果的溢出判断。若两个正数相加(或正数减负数)结果为负,或两个负数相加(或负数减正数)结果为正数,则OF=1;当正数与负数相加时不会产生溢出,OF=0。例如:1100 1010 则CF= PF= AF= + 0111 1000 ZF= SF= OF=,0101 0000 1100 1010 则CF= PF= AF= + 0110 1101 0111 0010 ZF= SF= OF=,2、总线接口部件BIU,(1)段寄存器 8086CPU内部数据结构是16位,即所有的寄存器都是16位的,而其外部寻址空间(即内存大小)为1M

24、B,需要 ? 条地址线。在寻址方式中经常用16位寄存器存放存储器地址,00001H 00003H 00005HFFFFFH,00000H 00002H 00004HFFFFEH,很明显,16位地址能够表示_个单元,只占1M空间的_,那么剩下的单元我们该如何访问呢?,20,64K,1/16,为了解决这一问题,在8086中对内存采取了段式管理,共分4种段: 1.代码段(存放程序代码) 2.数据段(存放程序运行时所需数据) 3.堆栈段 4.附加段(附加数据段),2、总线接口部件BIU,00001H 00003H 00005HFFFFFH,00000H 00002H 00004HFFFFEH,1M内存

25、的地址范围为:,00000H,FFFFFH,00000HFFFFFH,16位寄存器的编址范围为: 0000HFFFFH 因为:XXXXH+ XXXXHXXXXXH SO:使用两个地址的加和来构成实际地址 (物理地址) 也就是:段地址16偏移地址物理地址 段地址存放在四个段寄存器:CS、DS、SS、ES里面; 偏移量根据不同的寻址方式存放在程序计数器IP或其他寄存器(如BX、BP、SI、DI等),例如: 给定的某个逻辑段段地址为3008H,段内偏移地址为002FH,则其对应的真正物理地址为:3008H16+002FH=300AFH在内存中的实际存放为:,我们可以看出,在3008H段中, 第一个单

26、元的地址为30080H,即:3008H160000H=30080H 最后一个单元的地址为:3008H16FFFFH=4007FH,因此,XXXXH段的地址范围为: XXXXH16 0000HXXXXH16FFFFH 即一个段的最大为0000HFFFFH64K,内存节、内存节与段地址的关系,任何一个段的段地址左移4位后,其最低4位都是0,例如00000H、00010H、00020H、00030H000F0H、00100H、00110H、00120H、F43D0H等都可假设为是一个段地址左移4位后的结果。大家观察,上面所列举的每相邻的两个地址编码之间的间隔是多少个字节?在8086中将1MB空间以1

27、6个字节为一个内存节,共分成64k个节。每个节的首地址的最低4位都是0,例如从22480H2248FH的内存空间即为一个内存节,这样的内存节的首地址的高16位部分即可作为一个段的段地址,也就是说一个段的首地址一定是某个内存节的首地址。反过来说对么?,段寄存器,刚才提到,在8086中设有4个段寄存器CS代码段寄存器(编写的程序代码需存放在内存中,此时需要把其首地址的高16位存放在CS中,例如若CS值为3000H,则意味着当前运行的程序存放在内存地址30000H开始的单元中,)DS数据段寄存器(例如存放一个数组的数据,若DS=2488H,则说明该数组存放在24880H开始的内存单元中)SS堆栈段寄

28、存器ES附加段寄存器,若某个段寄存器内容为23F0H,而段的长度为64K,则其结束地址为: 23F00H+07FFFH=2BEFFH,指令指针寄存器IP,用于存放当前指令的偏移地址,该寄存器一定与代码段寄存器结合使用,3、总线接口部件和执行部件的管理,由于指令队列缓冲器的存在,实现了EU与输入/输出接口部件的并行工作,从而提高了效率。总线接口部件与EU互相配合工作,其动作有以下几方面管理原则: 当8086指令队列中有两字节空闲时,总线接口部件自动从内存中将指令取到指令队列中, 每当EU要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。EU要花几个时钟周期执行指令。执行指令中若

29、要访问内存或I/O设备, EU就向总线接口部件申请总线周期,若BIU总线空闲,则立即响应;若BIU正在取一条指令,则待取指令操作完成后响应EU的总线请求 当指令队列已满,EU又没有申请总线时,BIU进入空闲状态 当遇到转移、调用及返回指令时,自动清除指令队列缓冲器中已有指令,从新地址开始,重新填充指令队列,以适应新的指令执行顺序,4、8086微处理器的总线周期,计算机是由一串脉冲控制进行工作的,这一串脉冲称为计算机的时钟,每个脉冲称为一个时钟周期或一个T状态,若干个时钟周期完成一个基本操作,称为一个总线周期。CPU有若干种典型操作,构成相应的总线周期。如存储器读总线周期、存储器写总线周期、I/

30、O读总线周期、I/O写总线周期等。完成一条指令所需的时间称为指令周期,一个指令周期通常需要若干个总线周期(包括取指令和执行指令的总线周期)。在8086中,一个最基本的总线周期一般由4个时钟周期组成,或者称为T1状态、T2状态、T3状态、T4状态。有时根据需要在T3与T4之间插入若干个等待状态TW,如下图所示:,1个总线周期=4(+n)个时钟周期 1个指令周期=n个总线周期,T1状态:CPU向地址总线上发送地址信息(如图所示)(若是取指令周期,则发送指令的地址,若是取操作数则送操作数地址),指出要寻址的内存单元地址或I/O端口地址。这期间CPU还要送出地址锁存信号ALE,在ALE的下降沿将内存单

31、元地址或I/O端口地址打入地址锁存器(因为地址与数据总线是分时复用的)T2状态:CPU从总线上撤消有效地址,使地址总线低16位呈高阻状态,为数据传输做准备。总线高4位(A19A16)输出总线周期的状态信息,用以表示中断允许状态及正在使用的段寄存器名称。,T状态,1 0 0 0 0 1 1 1 1 1,T状态,T3状态: A19A16上状态信息不变,地址总线低16位上出现 CPU要写出的数据或准备读入的数据。若外设或内存来不及与总线交换数据,以便在T4状态下结束该总线周期,则应通过其自身的READY信号,在T3前沿(下降沿)之前向CPU申请插入等待状态TW。CPU在T3及TW的前沿查询READY

32、信号,查到高电平则结束等待状态,进入下一状态。否则继续插入TW。 T4状态:总线周期结束,2.1.2 8086的工作模式及引脚功能,1、8086的工作模式8086CPU提供了两种工作模式:最小工作模式和最大工作模式。工作在何种模式,将根据需要由硬件连接决定。 最小工作模式:系统中只有8086一个微处理器。在这种系统中,所有的总线控制信号都直接由8086产生。系统中总线控制逻辑电路最少。 最大工作模式:系统中包括两个以上处理器,其中一个8086做主处理器,其他处理器称为协处理器。与8086协同工作的协处理器有用于数值运算的协处理器8087,输入/输出协处理器8089。配置协处理器的系统,主处理器

33、不用处理费时的复杂运算和I/O设备服务,提高了主处理器的运行效率。,CLK:时钟信号,输入 RESET:复位信号,输入。8086要求复位信号至少维持4个时钟周期的高电平,以完成CPU内部寄存器的复位操作。复位信号出现,CPU就结束当前的操作,进入复位操作,即将FR、IP、DS、SS、ES及指令队列清0,将CS置为FFFFH,当复位信号降为低电平时,CPU从FFFF0H地址开始执行指令。所以系统程序在该物理地址单元放一条转移指令转移到引导程序的入口。,2、8086的引脚功能,AD15AD0在T1状态输出地址信号,在T2、T3状态,若为总线读周期则总线浮空,若为总线写周期,则总线上输出数据。 NM

34、I:非屏蔽中断,输入,该信号为一个由低到高的上升沿有效信号。它不受中断允许标志IF的影响。一旦产生NMI信号,CPU处理完一条指令后,立即进入非屏蔽中断处理。,最小/最大模式控制信号,输入。该引脚接+5V时,CPU工作在最小模式,接地工作在最大模式,A19/S6A16/S3 地址状态复用引脚,输出。 在总线周期的T1状态,A19A16输出最高4位地址信号,在T2、T3、TW、T4状态,S6S3输出状态信息,意义如下: S6为0表示8086CPU占用总线。 S5表明中断允许标志IF的设置情况,若IF=1,则为允许可屏蔽中断,S5=1;若IF=0,则为禁止可屏蔽中断,S5=0。 S4、S3指明正在

35、使用的段寄存器,组合情况如右表:,READY:准备好信号,输入,高有效。当CPU访问存储器或I/O设备,而存储器或I/O设备来不及在T4结束数据传输时,就应在T3之前提供一个低电平READY信号。 BHE/S7:高8位数据允许/状态复用引脚,输出。在T1状态该引脚输出BHE信号(低电平有效),表示高8位数据线D15D0上数据有效。,BHE/S7:高8位数据允许/状态复用引脚,输出。在T1状态该引脚输出BHE信号(低电平有效),表示高8位数据线D15D8上数据有效。 说明:数据线低8位对应内存单元的偶地址部分,高8位对应内存单元的奇地址部分(奇偶地址如何划分?),即偶地址存放低字节数据,奇地址存

36、放高字节数据;而且一个完整的总线周期中,从内存中读写数据的顺序都是从低字节开始到高字节共16位。 BHE与A0合起来可向总线上存储器接口传送下表所示信息:,请思考:上表中为何不能出现1与1的组合?,从偶地址开始读/写一个字 AD15AD0 从偶地址开始读写一个字节 AD7AD0 从奇地址开始读/写一个字节 AD15AD8,0 1 AD15AD8 1 0 AD7AD0,2.1.3 最小模式系统,最小模式系统处理器?个,MN/MX引脚接向? 1、最小模式下第2431脚信号功能 (1)WR:写信号,输出 (2)M/IO:存储器或I/O设备控制信号,输出 WR、RD及M/IO三个信号合起来决定系统中数

37、据传输的方向,见下表,I/O读 I/O写 存储器读 存储器写,(3)HOLD:总线保持请求信号,输入。当系统中其他部件需要占用总线时,通过该引脚向CPU发出申请。 (4)HLDA:总线保持响应信号,输出。当CPU查询到HOLD信号时,若是允许其他部件占用总线,则在当前总线周期结束时,于T4状态从HLDA引脚发出高电平响应信号。同时CPU的所有三态总线(如读写控制信号、存储器/输入输出控制信号等)进入浮置状态,申请部件接收到HLDA后即可接管总线,直到操作完成,撤消HOLD信号,CPU才重新接管总线。 (5)INTA:中断响应信号,输出。外设申请可屏蔽中断,IF=1时,CPU响应,需在两个连续的

38、中断响应周期发两个INTA负脉冲信号。第一个通知外设其中断请求已被响应,第二个通知该设备将中断类型码送上数据总线(所有的中断都有自己的中断类型码),(6)ALE:地址锁存允许信号,输出。在任何一个总线周期的T1状态,ALE都输出有效信号,来表示当前在地址数据复用总线上输出的是地址信息,供地址锁存器对地址进行锁存。 (7)DEN:数据允许信号,输出。当CPU要发送或接受一个数据时,该引脚输出有效信号,控制数据总线收发器输出允许信号。 (8)DT/R:数据收发方向控制信号,输出。低表示接收数据,高表示发送数据,用于控制数据总线收发器的数据传送方向。在DMA方式下,该引脚也被浮置为高阻态。,分组记忆

39、:组1- 数据/地址复用引脚T1状态下的 AD0AD19 (A0A19) T2、3、4状态下的 AD0AD15 (D0D15)S3S6 (A16A19)组2- 中断引脚不可屏蔽中断NMI可屏蔽中断 INTR S5/A17 INTA组3- 总线保持引脚总线保持请求 HOLD总线保持响应 HLDA组4- 数据传输引脚读写控制 RD WR M/IO数据传输允许 DEN数据收发方向 DT/R其它- GND VCC MN/MX ALE TEST READY RESET BHE/S7,8086 最小模式下的引脚功能,与WAIT指令配合使用,可实现与外设同步工作,3片8282地址锁存器用于20位地址和BHE

40、信号锁存。以满足整个总线读写周期地址一直有效的要求。,2、最小模式下的系统配置,一片8284A时钟发生器产生时钟信号CLK,同时对外部READY和系统RESET信号进行同步,2片8286总线驱动器(总线收发器),当系统的存储器和外设较多时用于提高数据总线的驱动能力,(1)8284A与8086的连接,晶体振荡器,8284A内部振荡器产生自激振荡,在CLK端输出占空比为1/3的时钟脉冲。上电复位及按钮复位信号送其RES输入端,经8284同步后送8086。来自内存或外设的等待请求信号送RDY1,经8284同步后送8086的READY引脚。PCLK输出占空比为1/2的时钟脉冲,用作外部时钟,(2)82

41、82与8086的连接,在T1状态,总线上输出地址信号及BHE信号,而在T2T4状态,总线用于传送数据,此时BHE信号也失效。 因地址信号一直有效,故8282的输出允许端OE要接地。在T1状态,CPU输出地址锁存允许信号ALE,将ALE接向8282的选通输入端STB。当ALE=1时,8282输出跟随输入变化,用ALE的下降沿将总线上已经稳定的信号锁入8282,(3)8286与8086的连接,数据线的连接;输出使能端OE端接向8086数据输出使能端DEN。T端接向数据发送/输入端 DT/R。当OE=1时,控制门关,8286两端均为高阻态。数据传送方向受T端控制,当T=1时,数据从A传向B。,2.1

42、.5 8086的操作和时序,8086CPU的主要操作有:系统的复位和启动 最小模式下读写总线操作 中断操作 最小模式下的总线保持,8086系统的复位和启动,8086的复位和启动是通过RESET引脚上高电平信号实现的。一旦RESET变高(至少要保持4个时钟周期),则立即停止指令执行。若RESET一直持续高则8086一直处于复位状态。复位操作包括: (1)所有通用、专用、标志寄存器、ES、DS、SS、指令队列缓冲器及IP都清0,而CS被置为0FFFFH,故复位信号消失后,程序从0FFFF0H(CS16+IP)处开始执行。 (2)所有三态总线变为高阻态,三态总线包括:AD15AD0、A19/S6A1

43、6/S3、BHE/S7、S2(M/IO)、S1(DT/R)、S0(DEN)、LOCK(WR)、RD、INTA等。而ALE、HLDA、QS0、QS1等降为低电平,RQ/GT0、RQ/GT1升为高电平,1、复位操作时序图,1)某个时钟周期上升沿检测到外部RESET信号为高 2)将内部RESET信号置为高电平 3)在2)完成后再过半个时钟周期的不工作状态,将所有三态总线变为高阻态,且在RESET信号失效前一直处于高阻态。 注:不管CPU原来处于何种状态,对RESET信号的响应是立即进行的。,2.1总 线 读 周 期,T1 状态开始前,T1 状态:地址状态,地址输出,T2状态:准备状态,高阻状态(为接

44、收数据作准备),T3状态:数据状态,T4状态:结束,第一周期:CPU输出BHE信号、ALE信号,及地址A0-A19,第二周期:A19/S6-A16/S3,BHE/S7输出状态S7-S3;同时RD和 DEN变有效(低电平)。,第三周期 :数据输入,第四周期: 从AD15-AD0读入数据,并使RD 信号和DEN信号处于无效状态。,2.2总线写周期,1.十六位数据引脚T2状态时,读 周期为高阻态,写周期为数据输 出状态.,3.DT/R在读周期为低电平,写周期为高电平,2.读周期用RD引角,写周期用WR,3、中断操作,中断分为硬中断(外部中断)和软中断(内部中断)。软中断:因内部设置条件而改变程序执行

45、流程的过程。是程序中的一条指令,在编程时已经安排好其位置,无随机性。 硬中断:因外部事件而改变程序流程的过程,具有随机性。硬中断又分可屏蔽中断 INTR、非屏蔽中断 NMI。,对INTR中断请求是否响应受 ? 影响,而对NMI中断请求是否响应则与其无关。,IF/S5,中断服务程序,由于中断请求出现的随机性,现行程序无法对中断源进行服务,需要针对具体的中断源预先编好相应的中断服务程序,并将所有的服务程序存放在内存中以便需要时随机调用。存放服务程序的存储空间不要求连续,CPU只需取得中断服务程序的入口地址便可转到相应的服务程序,关键是如何组织服务程序的入口地址。,2000:0230H,2400:0

46、462H,3720:8800H,中断向量,我们把中断服务程序的入口地址称为中断向量。中断向量包括中断服务程序的段地址和偏移量。8086系统最多有256个中断,对应256个中断服务程序。系统将256个中断向量构成一个一维表,即中断向量表,存放在内存最低端开始的一段连续区间。每个中断向量共占(?)个字节,其中段地址占(?)个字节,放在内存的高地址单元,偏移量占(?)个字节放在相应的低地址单元,256个中断向量共占(?)个单元,即占用了0段的0000H(?)区域。,4,2,2,1024,03FFH,中断向量表,256个中断在中断向量表中的排列序号称为其中断类型码(从0到?)。中断类型码是访问向量表的

47、依据,只需将类型码乘4便得到相应中断服务程序的入口地址所在单元的地址。即:中断类型码类型码乘4的结果是 ? 的地址;在该地址所对应的单元中存放的内容是?,0080H 0081H 0082H 0083H,80H 12H 00H 20H,中断向量,中断服务程序的首地址,如中断类型号为20H的中断所对应的中断服务程序首地址就放在 0段的0080H开始的4个单元中,其中 0000:0080H,0000:0081H中存放偏移量 0000:0082H,0000:0083H中存放段地址 若中断服务程序的首地址是2000:1280H 则在内存中是如何存放的?,中断服务程序,中断向量 (中断服务程序入口地址 4

48、个字节),中断向量表,12 n,中断向量2,中断类型号,如何找到中断服务程序首地址?在INTA的第二个低电平得到中断类型号; 中断类型号4(偏移量)中断类型号4+2(段地址),得到中断向量; 段地址*16+偏移量=中断服务程序首地址; 依据首地址找到中断服务程序。,21H,已知:中断类型号为27H 27H*4=9CH,35H,14H,23H,0000:009CH,偏移量:3521H,段地址:2314H,26661H (2314:3521H),中断服务程序,硬中断的响应与处理,第一个INTA信号用途如何?第二个呢?,通知外设中断被响应,请外设送上中断类型码,8086CPU得到中断类型号后进入中断处理过程。首先要找到中断服务程序首地址,同时将标志寄存器FR及断点处IP和CS入栈保护,清除IF和TF,然后将服务程序首地址送入IP和CS,执行中断服务程序。中断服务程序中除了其主体内容外,在程序开头都要把中断服务程序内所用到的寄存器入栈保护,以免其内容被破坏。在程序结束时还要将其内容弹出,以恢复相应的寄存器内容。中断服务程序最后安排中断返回指令IRET,执行到该指令,CPU就会自动将保存在堆栈中的FR、IP和CS值弹出,使程序回到中断前的地址开始继续执行(如图所示)。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报