1.3 8086的操作和时序
8086的CPU主要操作有一下几个方面:
1)系统的复位和启动操作
2)总线读/写操作
3)中断操作和中断系统
4)最小模式下的总线保持
5)最大模式下的总线请求/授权
简单的科普:
》》》时钟周期:时钟脉冲信号的一个循环时间叫一个时钟周期,又称为一个“T”状态,是微处理器工作的最小时间单位。
》》》指令周期:执行一条指令所需要的时间。
》》》总线操作:微处理器通过总线来进行取指令、存取操作数等操作。
》》》总线周期:完成一次对存储器或I/O端口的操作所需要的时间。
》》》时序:指令译码以后按时间顺序产生的确定的控制信号。
1.3.1 系统的复位和启动操作
复位和启动是通过RESET引脚上的触发信号来执行的。
8086对RESET的要求:
①RESET最少维持4个时钟的高电平
②上电复位时脉冲宽度应大于50μs,即维持不小于50μs的高电平只要复位信号维持高电平,CPU就一直处于复位状态。
复位状态下:
三态输出线为高阻状态
非三态输出线处于无效状态
CPU内部寄存器置为初值》》》三态输出线AD15~AD0 、A19/S6~A16/S3、BHE#/S7、 RD#、 INTA#、M/IO#(S2)、DT/R#(S1)、 DEN#(S0)、 WR#(LOCK#) 》》》非三态输出线ALE、HLDA、RQ#/GT0#、RQ#/GT1#、QS1、QS0
启动操作
RESET由高变低时,经7个时钟周期之后,CPU被启动恢复工作,从FFFFOH处开始执行程序。(FFFF0H即为微机BIOS的入口地址)1.3.2 总线操作
1.3.3 中断操作和中断系统
(1)8086的中断分类
》》》8086的中断系统,可以处理256种不同的中断,每个中断对应一个中断类型号,256种中断对应的中断类型号为0~255。》》》若按中断的方法来分,这256种中断可分为两大类:硬件中断和软件中断
《《《》》》硬件中断又叫外部中断。分为非屏蔽中断和可屏蔽中断
①非屏蔽中断:不受IF的屏蔽,并且整个系统只能有一个
②可屏蔽中断:只有中断允许标志IF=1时,可屏蔽中断才能进入。
硬件中断是由于8086外部提出中断请求引起的程序中断
非屏蔽中断:中断类型号为2
NMI请求(上升沿有效)
可屏蔽中断:中断类型号来自外设中断接口INTR请求(高电平有效)
响应时产生INTA#信号《《《》》》软件中断是由于8086内部执行程序出现异常引起的程序中断
除法错中断: 中断类型号为0
单步中断: 中断类型号为1
断点中断 INT 3: 中断类型号为3
溢出中断 INTO: 中断类型号为4
指令中断 INT n: 中断类型号为n(2)中断向量和中断向量表
中断处理子程序的入口地址称为中断向量。
将中断向量送入CS:IP即可转入中断处理子程序。
中断向量表实现:由中断类型号获取与该类型号相对应的中断处理子程序的入口地址。
中断向量表设置在内存低端的1K字节单元内,即00000H~003FFH单元。(3)可屏蔽中断
INTR:可屏蔽的中断请求,高电平有效,类型码在中断响应周期从数据总线上获得。可屏蔽中断的响应过程:
①启动中断响应总线操作,在第2个中断响应总线周期读取中断类型号n。将n左移2位获得4n存放于暂存器中。
②执行1个总线写周期,将FR的内容压入堆栈。
③清除IF和TF标志。
④执行2个总线写周期,依次将CS和IP内容压入堆栈。
⑤执行2个总线读周期,依次将4n的字存储单元中的内容读入IP,将4n+2的字存储单元中的内容读入CS,于是,CPU从新的CS:IP值开始执行中断处理子程序。
可屏蔽中断类型号的获得:
可屏蔽中断INTR的中断类型号由外设中断接口在第2个中断响应周期提供给CPU的。
外设中断接口可以由用户自行设计,例如利用三态缓冲器74LS244提供中断类型号。
利用可编程中断控制器专用芯片,例如8259A。
(4)非屏蔽中断
从NMI引脚引入的中断是非屏蔽中断,它是由上升沿触发。
NMI请求信号不受IF的影响,CPU一旦接收到请求信号,就会在当前指令执行完立即响应NMI中断。
CPU响应NMI中断时,由CPU内部的硬件自动产生中断类型号2,无需外设提供中断类型码,故CPU不产生INTA#信号,不执行中断响应总线操作。
除上述外,非屏蔽中断的响应过程与可屏蔽中断相同。
(5)软件中断的特点
软件中断无随机性。
软件中断不受中断允许标志IF的影响。
中断类型码由系统预先定义或由INT n指令码给定。
CPU响应软件中断时,不执行中断响应总线操作,因此CPU不发出INTA#有效信号。
软件中断的响应过程与非屏蔽中断类似。