3.中断操作和中断系统
1.[在这里插入图片描述
2.中断向量和中断向量表
中断向量:中断处理子程序的入口地址,每个中断类型对应一个中断向量。
中断向量表中最多可容纳256个中断向量
中断向量不是任意存放的,由IP和CS有关。
查向量表时,中断类型号*4为起始地址,连续4个存储单元,前两值是IP,后两值为CS。
类型号1-4为专用的中断,5-31为保留的中断,32-255供用户定义的中断。
3.硬件中断
非屏蔽中断的类型号为2,非屏蔽中断处理子程序的入口地址放在0段的0008H、0009H、000AH、000BH这四个单元中。CPU将0008H、0009H两个单元的内容装入IP,将000AH、000BH两个单元的内容装入CS。
响应NMI请求时,CPU的动作和响应INTR请求时的动作基本相同,有一个差别就是在响应非屏蔽中断请求时,并不从外部设备读取中断类型码。
对非屏蔽中断和可屏蔽中断的处理仅仅有两点差别:CPU遇到可屏蔽中断请求时,先要判断IF是否为1,如果IF为1,CPU便进入中断响应过程,还要读取此中断的类型号。
如果是执行往段寄存器传送数据的指令(即MOV和POP),那一定会等下一条指令执行完后,才允许中断。这主要是为了堆栈指针的正确指示。
8086的中断响应要用两个总线周期,第一个总线周期用来通知发中断请求的设备,第二个响应周期CPU接收外设接口发来的中断类型号
4.中断处理子程序
1)进一步保护中断现场2)开放中断3)中断处理的具体内容4)弹出堆栈指令5)中断返回指令
5.软件中断
直接调用中断处理子程序的软件手段,这就是中断指令。通过中断指令使CPU执行中断处理子程序的方法叫软件中断。
软件中断的1号中断受标志寄存器中另一个标志即TF(单步中断标志)的影响,只有TF为1时,才能执行单步中断。
4.最小模式下的总线保持
HOLD叫总线保持请求信号,当某个总线主模块企图使用系统总线时,便发出高电平的HOLD信号,然后等待CPU发来总线保持响应信号HLDA。
5.最大模式下是总线请求/授权
总线控制信号是两个双向信号引脚RQ*/GT0*和RQ/GT1
8086的存储器编址
指令系统中的大部分指令只涉及16位地址,而8086的存储空间有1MB(20位)。
微处理器的指令系统
1.微处理器的寻址方式
1.立即数寻址:操作数多以常量出现,一般用于对寄存器赋值。不需要总线周期
MOV AL,80H
MOV AX,2000H(不带【】是数值,带【】是地址)
2.寄存器寻址:不需要总线周期
INC CX 将CX的内容加1
ROL AH,1 将AH中的内容循坏左移1位
3.输入/输出端口寻址
1)I/O直接寻址:I/O端口的地址直接在指令中提供;寻址范围0-255,最大端口号FFH
IN AL,82H
OUT 80H,AX
2)I/O间接寻址:先在DX寄存器中设置好I/O端口的地址,I/O指令用DX进行寄存器间接寻址;寻址范围0-65535,最大端口号FFFFH
IN AL,DX
OUT DX,AX
4.存储器寻址
1.直接寻址:存储单元的有效地址由指令直接指出
MOV AX,[2000H]
2.寄存器间接寻址
MOV AX,[BX] 将DS段中由BX所指地址开始的两单元的内容送AX
3.寄存器相对寻址,也可称为带位移量的寄存器间接寻址
偏移量=常数,也可以是变量名
MOV AX,[SI+100H] 如果SI=2000H,则将DS段2100H-2101H中内容送AX
4.基址加变址的寻址:操作数的有效地址(偏移地址)为基址寄存器的内容加上变址寄存器的内容
MOV AX,[BX+SI] 将BX和SI中的内容之和所指单元开始的2字节送AX
5.相对的基址加变址寻址
MOV AX,[BP+SI+0050] 将ES段由BP和SI中的内容与0050相加作为有效地址
eg: MOV [2000H],AL 改为间接寻址1)MOV BX,2000H
2)MOV [BX],AL
MOV BH,[2003H] 改为基址加变址 1)MOV BX,2000H
2)MOV SI,3
3)MOV BH,[BX+SI]
本文详细介绍了8086微处理器的中断系统,包括中断向量、中断处理子程序和硬件中断的响应过程。同时,讲解了8086的存储器编址方式,如直接寻址、寄存器寻址和输入/输出端口寻址等。此外,还探讨了软件中断的概念及其应用。
3124

被折叠的 条评论
为什么被折叠?



