第三章 8086微处理器系统结构_第1页
第三章 8086微处理器系统结构_第2页
第三章 8086微处理器系统结构_第3页
第三章 8086微处理器系统结构_第4页
第三章 8086微处理器系统结构_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

第三章8086微处理器系统结构13.18086CPU的内部结构8086CPU是Intel系列的16位微处理器,它采用HMOS工艺制造,双列直插,有40个引脚。8086CPU的电源为单一的5V,主时钟频率为5MHz~10MHz。它的外部数据总线为16位,地址线为20根。因为可用20位地址,所以可寻址的地址空间达1MB。8086CPU在内部采用了并行流水线结构,可以提高CPU的利用率和处理速度。8086CPU被设计为支持多处理器系统,因此能方便地与数值协处理器8087或其他协处理器相连,构成多处理器系统,从而提高系统的数据处理能力。8086CPU还具有一个功能相对完善的指令系统,能对多种类型的数据进行处理,使程序设计方便、灵活。3.1.18086CPU的内部结构Intel8086CPU由运算器、控制器和少量的寄存器构成。见图所示:3.1.1总体结构2控制器的组成框图

指令部件时序部件微操作控制部件控制器3运算器运算器是完成二进制编码的算术或逻辑运算的部件。运算器由累加器(用符号A表示)、通用寄存器(用符号B表示)和算术逻辑单元(用符号ALU表示)组成,其结构如图1-4所示,其核心是算术逻辑单元。

通用寄存器B用于暂存参加运算的一个操作数,此操作数来自总线。现代计算机的运算器有多个寄存器,称之为通用寄存器组。累加器A是特殊的寄存器,它既能接受来自总线的二进制信息作为参加运算的一个操作数,向算术逻辑单元ALU输送,又能存储由ALU运算的中间结果和最后结果。算术逻辑单元由加法器及控制门等逻辑电路组成,以完成A和B中的数据的各种算术与逻辑运算。运算器一次运算二进制数的位数,称为字长。它是计算机的重要性能指标。常用的计算机字长有8位、16位、32位及64位。寄存器、累加器的长度应与ALU的字长相等。4寄存器组1.通用寄存器:AX、BX、CX、DX2.指针和变址寄存器:BP、SP;SI、DI3.段寄存器:CS、DS、SS、ES4.指令指针IP与标志寄存器FR共14个,其位置见下图:5Intel8086分为两部分:总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。如图所示。61,总线接口部件BIU(BUS

Interface

Unit)

(1)段寄存器(CS,DS,SS,ES)——存放存贮器各段的段地址(首地址)。

(2)指令指针寄存器IP——存放要执行的下一条指令的偏移地址。

(3)地址加法器——将段地址(16位)和偏移地址(16位)扩展为20位的实际地址(物理地址)。或用逻辑地址表示段地址:偏移地址

(4)指令队列——将存贮器中代码段要执行的指令预先取出排队,由EU执行,以提高处理速度。BIU功能:相当于控制器——负责取指令,写回数据,完成CPU与存贮器及I/O接口间的数据传送。2,执行部件EU(Execution

Unit)

(1)算术逻辑运算单元(ALU)——完成算术运算、逻辑运算和移位等操作。

(2)通用寄存器——存放参与运算的数据或数据的地址及运算结果。

(3)标志寄存器(FR)——存放运算结果的特征,如正、负、零、进位、溢出等。

EU功能:相当于运算器——负责指令的执行,进行算术逻辑运算、移位、BCD调整、数据暂存等操作。7BIU和EU的动作管理

在8086中,BIU和EU两部分是按流水线方式并行工作的,在EU执行指令的过程中,BIU可以取出多条指令,放进指令流队列中排队。EU从BIU中的指令队列中不断地取指令并执行指令,因而省去了访问内存取指令的时间,加快了程序运行速度。BIU从内存取指令,并送到指令队列。取指令时的地址由代码段寄存器CS中的16位段地址的最低位后补4个0,再与指令指针IP中的16位偏移地址在地址加法器中相加得到20位物理地址。然后通过总线控制逻辑发出存储器读命令,从而启动存储器,从存储器中取出指令并送入指令队列供EU执行。在EU执行指令过程中需要取操作数或存结果时,先向BIU发出请求,并提供操作数的有效地址,BIU将根据EU的请求和提供的有效地址,形成20位的物理地址并执行一个总线周期去访问存储器或I/O端口,从指定存储单元或I/O端口取出操作数送交EU使用或将结果存入指定的存储单元或I/O端口。如果BIU已准备好取指令但同时又收到EU的申请,则BIU先完成取指令的操作,然后进行操作数的读写。88086微处理器指令的执行过程取指执行取指执行取指执行。。。在8086中,由于EU和BIU两部分是按流水线方式并行工作的,在EU执行指令的过程中,BIU可以取出多条指令,放进指令流队列中排队。EU仅仅从BIU中的指令队列中不断地取指令并执行指令,因而省去了访问内存取指令的时间,加快了程序运行速度。这也正是当时的8086CPU成功的原因之一。它的执行过程如上所示,取指令和执行指令由BIU和EU两个机构同时进行。910寄存器间接寻址的执行CS=1000HIP=0100HDS=3000HBX=2000H103.1.28086寄存器结构11128086/8088共有14寄存器,它们是:4个数据寄存器AX,BX,CX,DX(可拆分为8位)4个段地址寄存器CS,DS,SS,ES2个变址寄存器DI,SI3个指针寄存器IP,SP,BP1个标志寄存器FR(PSW、FLAGS)小结:128086中的标志寄存器状态标志位有6个:CF、PF、AF、ZF、SF、OF,控制标志位3个:IF、DF、TF。PSW程序状态字寄存器各标志位1314进位、溢出的概念无符号数/有符号数能否使用同一套加减指令?若无符号数/有符号数使用同一套加减指令,如何判断运算结果是否溢出?例:

00000101CFOF无符号数有符号数+00001010………………005+10=15(+5)+(+10)=+1500001111

00001000

+11111011…………………108+251=3(+8)+(-5)=+310000001100001000

+01111100………………018+124=132(+8)+(+124)=-1241000010010000111

+1111010111135+245=124(-121)+(-11)=+124………………101111100结论:无符号数/有符号数可使用同一套加减指令。参与运算的必须同为无符号数或有符号数。溢出判断:无符号数由CF=1有符号数由OF=1无符号数溢出可进行调整;有符号数溢出其结果错误。标志位变化运算结果为0:ZF=1

运算结果为负数:SF=1

运算结果有偶数个1:PF=1

低四位运算有进位时AF=1143.1.38086CPU的引脚及功能电平:一个比较难理解的概念。一般我们认为能够触发门电路动作的电压值。在逻辑电路中,符合一种逻辑值要求的电压范围。高电平:触发门电路动作的高位电压,在门电路中一般是5V。在正逻辑电路中符合逻辑值1的电压范围。低电平:触发门电路动作的低位电压,在门电路中一般是0V。在正逻辑电路中符合逻辑值0的电压范围。上升沿:从低电平到高电平的变化过程。

下降沿:从高电平到低电平的变化过程。

高阻:使芯片管脚处于阻断状态。也叫浮空。三态:一个芯片的管脚可以出现高电平、低电平和高阻三个状态。需要解释的几个概念15168086CPU的引脚及功能NMI不可屏蔽中断请求信号不受IF影响INTR可屏蔽中断请求信号CLK时钟信号RESET复位信号:从FFFF0H始其余清零READY准备好信号TEST检测信号RD读选通信号BHE/S7总线高字节有效/状态输出信号MN/MX最小/最大模式

M/IO存储器/IO控制信号S2总线周期状态信号

WR写选通信号LOCK锁定信号

INTA中断响应信号QS1指令队列状态信号

ALE地址锁存允许信号QS0指令队列状态信号

DT/R数据收发信号S1总线周期状态信号

DEN数据允许信号S0总线周期状态信号

HOLD总线保持请求信号RQ/GT0总线请求输入信号

HLDA总线保持响应信号RQ/GT1总线请求输入信号AD15~AD0双向三态A、D总线A19/S6~A16/S3三态A输出总线,

S6:始终为低S3:

S5:FR中IF的状态S4:选择段寄存器单独使用时:163.28086存储器组织

8086系统中,最大为1MB的存储空间分成两个存储体:偶地址存储体和奇地址存储体,最大分别为512KB。最大512KB最大512KBIntel808616位微机系统的内存组织

3.2.1存储器组织结构17当A0=0时,选择访问偶地址存储体,偶地址存储体与数据总线低8位相连,从低8位数据总线读/写一个字节。当/BHE=0时,选择访问奇地址存储体,奇地址存储体与数据总线高8位相连,从高8位数据总线读/写一个字节。当A0=0,/BHE=0时,访问两个存储体,读/写一个字。A0和/BHE功能组合见P20表3.1。存储器中存放的信息称为存储单元的内容,例如,存储单元00100H中的内容为34H,表示为(00100H)=34H。一个字在存储器中按相邻两个字节存放,存入时以低位字节在低地址,高位字节在高地址的次序存放,字单元的地址以低位地址表示。一个字可以从偶地址开始存放,也可以从奇地址开始存放。8086CPU访问存储器时,都是以字为单位进行的。当CPU读/写一个字时,如果字单元地址从偶地址开始,那么只需要访问一次存储器,低位字节在偶地址单元,高位字节在奇地址单元。如果字单元地址从奇地址开始,那么CPU需要两次访问存储器,第一次取奇地址上数据(忽略偶地址的8位数据),第一次取偶地址上数据(忽略奇地址的8位数据),因此为了加快程序运行速度,编程时注意从存储器偶地址开始存放字数据,这种存放方式也称作“对准存放”。183.2.2存储器地址的分段8086CPU对外20位地址线,因此,存储器的可寻址范围为1MB,但是8086微处理器的内部结构是16位的,用户可用的寄存器也都是16位(64KB)的,显然用16位的地址码无法寻址1MB的存储空间,如果才能做到?8086采用了分段寻址的方式对存储器进行管理。

8086采用分段访存机制,物理地址(PA)为20位,是通过16位的段地址寄存器和16位的偏移地址寄存器运算得到:20位物理地址=16位段地址×16(或10H)+16位偏移地址198086物理地址的生成:物理地址PA=段寄存器×16+偏移地址(有效地址EA)逻辑地址LA表示方法段寄存器:偏移地址20段地址与段基地址的关系:段地址×16(或10H)=段基地址段基地址或称为段起始地址简称为段基址。段地址为16位,段基址为20位,段基址的低4位全为0。偏移地址(又称有效地址、EA)表示离段基址之间的距离,用字节数表示。如偏移地址=0064H,表示该地址距离段起始地址有100个字节,偏移地址为0就表示该地址为段起始地址即段基址。由段地址(段寄存器的内容)和偏移地址两部分构成了存储器的逻辑地址(LA),用段地址:偏移地址表示,如CS:IP,DS:EA等。若DS=8100H,EA=2000H,其逻辑地址LA表示为8100H:2000H。物理地址(PA)为20位,为存储器的绝对地址,是通过16位的段地址寄存器和16位的偏移地址寄存器运算得到:20位物理地址=16位段地址×16(或10H)+16位偏移地址21例3.1:若某数据存放的段地址为8100H,偏址为34ABH,则其物理地址为8100H×16+34ABH=81000H+34ABH=844ABH。逻辑地址为8100H:34ABH。注意:由逻辑地址可得出唯一的物理地址,而由物理地址却不能导出唯一的逻辑地址。段地址为1005H的存储段的偏移地址可以是0000H到FFFFH之间的任何整数,所有的存储段都如此,最大偏移量为64KB。段寄存器给出了某特定存储段的基地址,而偏移地址寄存器则给出了需要访问的存储单元相对于段基地址的偏移量。由于偏移地址寄存器是16位的,因此每个存储段的最大容量是64KB。总线接口单元内建了一个独立的加法部件以完成物理地址的计算。段地址数值根据需要访问代码、数据或堆栈、附加段寄存器,分别从代码段CS、数据段DS或堆栈段SS、附加段ES中选取,而偏移地址则可能来源于IP、BX、SI、DI、SP、BP或者16位立即数,选择的依据是不同的寻址方式。2223基本概念:段地址、段基地址、段基址偏移地址、偏址逻辑地址、物理地址默认关系:IP---CSBX、SI、DI或16位数---DSBP、SP---SSDI(串指令)---ES23图3-7存储器采用段-偏址的组织模式243.2.3CPU与存储器的数据线及控制线的连接图3-88086的20位锁存地址地址通过ALE信号加以锁存25图3-98086的数据总线缓冲数据通过双向缓冲74LS245和地址进行分离263.2.4存储器的分体结构8086是一款16位微处理器,因此可以在一次存储或者I/O操作中完成两个字节数据的读写,但市面上存储芯片的数据端口宽度都是8位的。显然为了存储16位数据需要两片存储芯片,低字节存储在第一片存储芯片里,高字节存储在第二片存储芯片里。这样,微处理器就可以在一个机器周期内完成16位数据的读写操作。表3-1存储体的选择27存储空间中的某些单元被微处理器保留以支持某些特殊操作。这些单元包括FFFF0H到FFFFFH,这些单元存储了跳转指令,跳转进入微处理器和I/O的初始化程序。单元00000H到003FFH被保留用于存储中断向量表,该中断向量表支持256个中断向量。每个中断向量的内容为中断服务程序的始地址,包括CS和IP,共4个字节,总共256个中断向量,因此合计需要1KB的存储单元。283.2.5堆栈的概念堆栈是在存储器中开辟的一片数据存储区,用来存放需要暂时保存的数据。这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出(FILO)”的规则。堆栈段是由段定义的一个Stack段,堆栈段容量小于等于64KB。堆栈操作以字为单位进行,而且堆栈中的数据必须按规则字存放。低字节在偶地址单元,高字节在奇地址单元。把数据推入堆栈为“压入”;从堆栈取数据称为“弹出”。“压入”数据时,先修改SP的值,即将(SP)-2送SP,然后再与SS形成存储器的物理地址,将数据存入。“弹出”数据时,先从当前SS和SP形成的物理地址上取出数据,然后修改SP,即将(SP)+2送SP。堆栈操作是按“后进先出(LOFI)”的规则进行的。8086CPU设有专用的指令执行“压入”和“弹出”的操作,在这些指令中,SP的修改是自动进行的。293.38086系统时钟与指令周期计算机之所以能自动地工作,是因为CPU能从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令……,如此周而复始,构成了一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去。每条指令的解释执行过程包括取指令和执行指令两个步骤,CPU取出一条指令并执行这条指令,都要完成一系列的操作,这一系列操作所需要的时间通常叫做一个指令周期。由于各种指令的操作功能不同,因此各种指令的指令周期是不尽相同的。例如,一条加法指令的指令周期,同一条乘法指令的指令周期是不相同的。一个时钟周期:控制微处理器工作的时钟信号的一个周期。一个总线周期:8086CPU通过总线对外部(存储器或I/O接口)进行一次访问所需的时间。一个指令周期:CPU执行某一条指令所需的时间(包括取指令的总线周期和执行指令所代表的具体操作所需的时间)。8086基本的总线周期由4个时钟周期组成,分别用T1、T2、T3、T4表示,称为T1、T2、T3、T4状态,T1状态,CPU输出地址信号,T2、T3、T4状态传送数据,如果在T2、T3、T4状态无法完成数据传送,就在T3与T4状态之间插入Tw。对应指令执行的三个阶段,指令周期一般分为:取指周期、取操作数周期和执行周期三个部分。308086读总线周期8086最小模式下的读总线周期318086写总线周期8086最小模式下的写时序32(1)取指周期取指周期是取出某条指令所需的时间。在取指周期中CPU主要完成两个操作:1)按程序计数器PC的内容取指令;2)形成后继指令的地址。取指周期=(指令的长度/存储字的长度)×主存的读/写周期我们可以用设计指令格式时缩短指令长度、设计主存时增加主存储字字宽和采用快速的主存等措施来缩短取指周期,提高取指的速度。(2)取操作数周期取操作数周期是为执行指令而取操作数所需的时间。取操作数周期的长短与操作数的个数有关、与操作数所处的物理位置有关还与操作数的寻址方式有关。取操作数周期中应完成的操作是,计算操作数地址并取出操作数。操作数有效地址的形成由寻址方式确定。寻址方式不同,有效地址获得的方式不同、过程不同,提供操作数的途径也不同。因此操作数周期所进行的操作对不同的寻址方式是不相同的。33(3)执行周期执行周期是完成指令所规定的操作和送结果所需的时间。它与指令规定的操作复杂程序有关,还与目的操作数的物理位置和寻址方式有关。状态信息中的条件码在执行周期中存入程序状态字PSW。若该指令是转移指令,在该周期中还要生成转移地址。指令周期常常用若干个CPU周期数来表示,CPU周期也称为机器周期。由于CPU内部的操作速度较快,而CPU访问一次内存所花的时间较长,因此通常用内存中读取一个指令字的最短时间来规定CPU周期。也就是说,一条指令的取出阶段(通常称为取指)需要一个CPU周期时间。而一个CPU周期时间又包含有若干个时钟周期(通常称为节拍脉冲或T周期,它是处理操作的最基本单位)。时钟周期是CPU的时间基准,由计算机的主时钟脉冲决定,执行每条指令和每个总线周期的一系列操作都是在时钟脉冲的同步下进行的。这些时钟周期的总和则规定了一个CPU周期的时间宽度。图3-13示出了采用定长CPU周期的指令周期示意图。从这个例子知道,取出和执行任何一条指令所需的最短时间为两个CPU周期。也就是说,任何一条指令,它的指令周期至少需要两个CPU周期,而复杂一些的指令周期,可能需要更多的CPU周期。34在执行指令的过程中,CPU要占用系统总线访问内存或外部设备,以便从内存或外设接口中读取指令或指令所需的操作数。CPU占用一次系统总线,进行信息的输入输出所需要的时间称为总线周期。每当CPU要从内存或I/O端口存取一个字或字节数据时,就需要一个总线周期。而每条指令的执行过程至少需要一个总线周期(从内存读取一个字或字节的指令代码),大多数指令都需要多个总线周期(读指令代码、读操作数、存执行结果等)。CPU在一个总线周期中访问一次内存或I/O端口,每一次访问过程都需要多个基本步骤按照一定顺序进行,CPU在每一步发出不同的联络控制信号。因此,可以将每一个总线周期再具体划分为若干个小的时钟周期。353.3.2时序信号的作用与管理8284A与8086的连接如下图所示。外界送来的就绪信号RDY输入8284A,经时钟的下降沿同步后,输出READY信号作为8086的就绪信号READY;同样,外界送来的复位信号/RES输入8284A,经整形并由时钟的下降沿同步后,输出RESET信号作为8086的复位信号(其宽度不得小于4个时钟周期)。因此,外界的RDY和RES信号可以在任何时刻发出,但送至CPU是都是经过时钟同步后的信号。36图3-14时序波形图373.48086CPU的中断系统3.4.1中断处理过程中断,是指CPU在执行现行程序时,为处理一些紧急发生的情况,暂时停止当前程序,转而对该紧急事件进行处理,并在处理完后返回正常程序的过程。如下图3-16所示,中断可分为中断请求、中断判优、中断响应、中断处理和中断返回等几个阶段图3-16CPU中断处理过程381、内部中断

内部中断是由CPU内部事件引起的中断。如执行一条软件中断指令或单步中断标志TF为1时,执行任意一条指令,都可引起中断。因此内部中断也称软件中断,包括溢出中断、除法出错中断、单步中断、断点中断4个由内部硬件设置或自动引发的中断和指令设置的中断(内部软件中断)。1)溢出中断溢出中断是在执行溢出中断指令INTO时,若溢出标志OF为1,产生一个向量号为4的内部中断。溢出中断为程序员提供一种处理算术运算出现溢出的方法,通常和带符号数的加、减法指令一起使用。2)除法出错中断除法出错中断是在执行除法指令(无符号数除法指令DIV或带符号数除法指令IDIV指令)时,若除数为0或商大于目的寄存器所能表达的范围(对带符号数,单字节数为-128~+127,双字节数为-32768~+32767,对无符号数,单字节数为0~255,双字节数为0~65535,),产生一个向量号为0的内部中断。0型中断没有相应的中断指令,也不由外部硬件电路引起,故也称“自陷”中断。393)单步中断单步中断是当单步中断标志TF为1时,在每条指令执行结束后,产生一个向量号为1的内部中断。在中断过程中,CPU自动把标志寄存器FR压入堆栈,然后把TF和IF清零,以正常方式工作,中断过程结束时,从堆栈中自动弹出标志寄存器FR的内容,TF恢复为1,又恢复单步中断工作方式。单步中断是为调试程序而设置的。如DEBUG中的跟踪命令,就是将TF=1。8086没有直接对TF置1或清0的命令,可修改存放在堆栈中标志内容,再通过POPF指令改变TF的值。4)断点中断断点中断是指令中断中的一个特殊的单字节INT3指令中断,执行一个INT3指令,产生一个向量号为3的内部中断。断点中断常用于设置断点,停止正常程序的执行,转去执行某种类型的特殊处理,用于调试程序。5)指令中断指令中断是执行INTn时,产生一个向量号为n的内部中断,为两字节指令,INT3除外。INTn主要用于系统定义或用户自定义的软件中断,如BIOS功能调用和DOS功能调用。---第四章介绍内部中断向量号除指令中断由指令指定外,其余都是预定好的,因此都不需要传送中断向量号,也不需要中断响应周期。402、外部中断外部中断也叫硬件中断,是CPU外部中断请求信号引脚上输入有效的中断请求信号引起的,分为非屏蔽中断NMI和可屏蔽中断INTR二种。1)非屏蔽中断NMI非屏蔽中断NMI是由NMI引脚上输入有效的中断请求信号引起的一个向量号为2的中断。NMI用来通知CPU发生了致命性事件,如电源掉电、存储器读写错、总线奇偶位错等。NMI是不可用软件屏蔽的,而且是上升沿触发的,中断类型号预定为2,不需要中断响应周期。在IBMPC系列机中,NMI用于处理存储器奇偶校验错、I/O通道奇偶校验错以及8087协处理器异常中断等。412)可屏蔽中断INTRCPU的INTR引脚通常由8259APIC的INT输出信号驱动,8259A又与需要请求中断的外设相连。在外设发出中断请求信号时8259A根据优先权和屏蔽状态,决定是否发出INT信号。外设的中断请求信号必须在中断请求信号被接受前保持有效。而CPU对INTR信号是在每条指令的最后一个时钟周期采样的。接到有效的INTR信号后,CPU是否响应该中断请求,取决于中断允许标志位IF的状态。若IF=1,CPU开放中断,则响应,否则不响应。因此,要响应INTR的中断请求,CPU必须开放中断。8086设有对中断标志位IF置1或清0的指令,STI指令给IF置1,CPU开中断;CLI指令给IF清0,CPU关中断。除了CPU开、关中断之外,外设的中断请求是否被传送到CPU还受到中断控制器的控制,如8259A设有中断屏蔽寄存器,可对接于其上的每一个外设的中断请求屏蔽或开放,有选择地允许中断响应。中断屏蔽寄存器的内容可以由CPU通过命令写入。如果出现中断嵌套的情况,只有满足中断嵌套条件才能发出中断请求信号。8086中断优先级由高到低依次为软件中断(单步中断除外)、非屏蔽中断NMI、可屏蔽中断INTR、单步中断。423.4.2中断向量表中断向量表又称中断服务程序入口地址表。

各个中断处理程序的段地址与偏移量按中断向量号顺序存入中断向量表中(每个中断向量号占4个字节)。

8086中断系统采用的是向量型中断方式,每个中断源都有一个为它服务的中断服务程序。8086最多能管理256个中断,对应类型号为00~FFH,称为中断类型号或中断向量号,是识别中断源的唯一标志。每一个中断服务程序都有一个确定的入口地址,该地址称为中断向量。把系统中所有中断向量集中起来,按中断类型号从小到大的顺序存放到存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表,亦即中断入口地址表。438086中断向量表44每个中断向量占用4个存储单元,4个单元中的前2个单元存放的是中断服务程序所在段内的偏移量(IP的内容,16位地址),低位字节存放在低地址,高位字节存放在高地址;后2个单元存放的是中断服务程序所在段的段地址(CS的内容,16位地址),存放方法与前2个单元相同。CPU响应中断时,从中断向量表中查出中断向量地址,再从该地址中取出内容分别装入IP和CS,从而转去执行相应的中断服务程序。中断向量在表中的位置称为中断向量地址,中断向量地址与中断类型号的关系为:中断向量地址(首地址)=中断类型号×4因此由中断类型号n×4即得到相应中断向量的地址,取4n和4n+1单元中的内容(中断入口段内偏移地址)装入指令指针寄存器IP,取4n+2和4n+3单元中内容(中断入口段地址)装入代码段寄存器CS,即可转入中断处理程序。45例3.2某中断类型号为72H,下图表示出了中断操作过程:1、取中断向量号2、计算中断向量地址3、中断服务入口地址送入IP4、转中断服务程序5、中断返回至INTn指令的下一条指令46中断向量的设置向量号0~4用于除法出错、单步中断、NMI中断、断点中断、溢出中断。向量号5~7系统使用

、8H~0FH用于主片8279A,

10H~1FH为BIOS专用中断向量号、20~3FH为DOS中断向量号。向量号70~77H用于从片8279A,80~85H用于BASIC程序。对于用户定义的中断调用,除设计好中断服务程序外,还必须把中断服务程序入口地址放置到与中断类型号相应的中断向量表中,具体方法有:(1)在程序设计时定义格式的数据段;(2)用数据传送指令来设置;(3)利用DOS功能调用来实现。473.58086CPU与存储器组织及I/O连接3.5.1、存储器、I/O的地址译码器存储器的接口信号存储器通过总线与CPU连接。CPU与存储器之间要交换地址信息、数据信息和控制信息。存储器的接口信号

48存储器设计需要考虑的问题1.存储器容量2.存储空间的安排3.总线上的存储器存取信号及时序4.数据总线宽度49存储器容量的扩展

存储器的容量:字数[2(地址线)]×位数⑴位扩展:将多片存储器经适当的连接,组成位数增多、字数不变的存储器。方法:用同一地址信号控制n个相同字数的RAM/ROM。50

例:将256×1的RAM扩展为256×8的RAM。即将8块256×1的RAM的所有地址线和CS(片选线)分别对应并接在一起,而每一片的位输出作为整个

RAM输出的一位。

256×8的RAM需256×1RAM的芯片数为:将256×1的RAM扩展为256×8的RAM51(2)字扩展:将多片存储器经适当的连接,组成字数更多,而位数不变的存储器。例:由1024×8的RAM扩展为4096×8的RAM。共需四片1024×8的RAM芯片。

1024×8的RAM有10根地址输入线A9~A0。

4096×8的RAM有12根地址输入线A11~A0。选用2线-4线译码器,将输入接高位地址A11、A10,输出分别控制四片RAM的片选端。52由1024×8的RAM扩展为4096×8的RAM53(3)字位扩展

例:将1024×4的RAM扩展为2048×8RAM。位扩展需2片芯片,字扩展需2片芯片,共需4片芯片。字扩展只增加一条地址输入线A10,可用一反相器便能实现对两片RAM片选端的控制。字扩展是对存储器输入端口的扩展,位扩展是对存储器输出端口的扩展。当位线和字线都需要扩展时,一般是先进行位扩展,然后再进行字扩展。54将1024×4的RAM扩展为2048×8RAM551.利用门电路进行地址译码

(a)I/O端口部分译码电路示意图(b)I/O端口全译码电路示意图562.利用译码器进行地址译码利用译码器芯片(例如74LS138译码器)对地址信号进行译码,译码器芯片有2:4,3:8,4:16等各种规格。

575859利用译码器进行译码的全译码电路

60存储器设计举例例3.3在8位数据总线上用62256扩充64KBRAM。地址空间为0000H~FFFFH。采用32K×8位的62256(SRAM)。地址:A0~A14寻址空间215=32KB数据:8位管脚:DIP2861由于是8位数据总线,16位地址总线,即在其中的16条地址线(0000H~FFFFH

)进行寻址。

/MEMR为存储器读信号,/MEMW为存储器写信号。

暂不考虑等待问题。地址空间为0000H~FFFFH:

0000

000000000000b

~0111111111111111b

1000

000000000000b

~1111111111111111b片选信号根据0、1译出芯片的片选信号/CS1、/CS2:/CS1=/A15

温馨提示

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

评论

0/150

提交评论