系统的复位和启动操作
重点:
(1)8086的复位和启动操作通过RESET信号来引发的,要求信号起码维持4个时钟周期的高电平
(2)复位状态,CPU将CS设置为FFFFH,其他内部寄存器都为0
(3)由于IF清零,所有中断得不到允许,系统程序需要在适当时候,通过指令来设置中断允许信号
(4)内部RESET信号:给CPU发出重启指令,CPU自动保持高电平
总线操作
最小模式下的总线读操作:
注意:
(1)BHE :在T1周期中允许数据高8位输出
(2)RD :在T2周期才拉低,通知内存,T4周期拉高,表示CPU读取数据
最小模式下的总线写操作:
中断操作与中断系统
(一)中断分类
硬件中断(非屏蔽中断和可屏蔽中断)和软件中断
可屏蔽中断(鼠标,键盘……)挂在中断控制系统上,对应一个中断号,受中断允许标志IF的影响
(二)中断向量和中断向量表(由操作系统建立)
8086的中断系统以位于内存0段的0~3FFH区域的中断向量表为基础,中断向量表中最多可容纳256个中断向量,每一个中断向量4个字节,存放的是中断处理子程序的地址(包括首地址CS和偏移量IP)
(三)响应过程
可屏蔽中断的响应过程:
(1)从数据总线上读取中断类型号,将其存入内部寄存器
(2)将标志寄存器的值推入堆栈
(3)将标志寄存器的IF和TF清零
(4)将端点保护到堆栈中(端点:响应中断时,主程序中当前指令下面的一条指令的地址)
(5)寻找中断向量,转入中断处理函数
非屏蔽中断的响应过程:
除了不从外部设备读取中断类型码,其他都相同
说明:
(1)非屏蔽和可屏蔽中断的两点差别:CPU在遇到可屏蔽中断请求时,先要判断IF是否为1,如果IF为1,CPU便进入中断响应过程;进入响应过程后,CPU还要先读取此中断的类型号。非屏蔽中断不需要这两步。
(2)TF是单步中断标志。为1时,进入中断类型为1的单步中断,功能是只执行当前程序的一条指令,然后将各寄存器的内容显示出来,并且在每执行一条指令后,又自动产生类型为1的中断。
(3)在一个中断被响应即进入中断处理子程序后,如又遇到NMI引脚上有非屏蔽中断请求,CPU仍能响应。
(4)中断结束后,返回断点
(5)串操作时,允许指令执行过程中进入中断。
(四)中断处理子程序
(1)通过一系列推入堆栈指令保护中断现场
(2)一般情况下,设置IF开放中断
(3)中断处理的具体内容
(4)一系列的弹出堆栈指令,使各寄存器恢复进入中断处理时的值
(5)中断返回指令,使堆栈中保存的断点值和标志值分别装入CS、IP和标志寄存器中
(五)软件中断特点
(1)用一条指令进入中断处理子程序,且中断号由指令提供
(2)进入中断时,不需要执行中断响应总线周期,也不从数据总线读取中断类型码
(3)不受中断允许位IF的影响
(4)执行过程可响应外部硬件中断
(5)软件中断无随机性
8086的存储器编址
8086的I/O编址
允许有65536个8位的I/O端口
1、与存储器统一编址,但会占用内存地址
2、独立编址