微机原理复习-中断-8259

80X86中断指令

1.开中断指令:STI
2,关中断指令:CLI
3.软件中断指令:INT n
        n:中断类型码又称中断。取值范围:0~255
4.中断返回指令:IRET

中断分类

CPU中断

1.除法错中断--0型中断
2.单步中断--1型中断
3.断点中断--3型中断
4.溢出中断--4型中断

软件中断

1.BIOS中断
2.DOS 中断
3.DOS保留中断



8259A中断控制器

8259A初始化命令字

一片8259A有两个端口地址,由片选信号和端口选择线A0共同确定,A0 = 0为偶地址,A0 = 1为奇地址

1.ICW1 

D7~D5:置为0
D4:ICW1标志位。D4= 1表明是ICW1命令字
D3:1--高电平触发
         0--边沿触发
D2:置0
D1:1--表示系统中只有一片8259A
         0--表示使用多片8259A级联
D0:置1,表明需要写入ICW4

2.ICW2

ICW2是预置的中断类型码,初始化编程时8259A只接收高5位,形成D7~D3。D2~D0取决于当前响应的是IR0~IR7中的哪一个。


3.ICW3

系统使用多片8259A级联是,才需要写入ICW3

主8259A ICW3:
Si :0-8259A的IRi端没有接从8259A
1-8259A的IRi端接有从8259A

从8259A ICW3:
ID2~ID0:从设备编码
ID7~ID3:不用


4.ICW4

D7~D5:置0
D4:1- 特殊完全嵌套方式
  0-非特殊完全嵌套方式
(BUFF)D3:1-缓冲方式
    0-非缓冲方式
(AEOI)D2:1-自动中断结束方式
   0-常规EOI方式或特殊EOI方式
D0:置1




8259A操作指令

1.OCW1(中断屏蔽字)

Mi:1-屏蔽IRRi
        0-开放IRRi

2.OCW2(中断结束命令字)

R(D7):1-具有优先级循环功能
       0-固定优先级
EOI(D5):中断结束控制位,1-又有中断结束功能;最常用的EOI命令字为:20H
D4D3 = 00;
L2~L0(D2~D0):编码对应于IR0~IR7中断源,仅当SL(D6)=1时有效

3.OCW3

ESMM、SMM (D6D5):= 11-设置特殊屏蔽方式
                   10-取消特殊屏蔽方式
P(D2):1-在这之后,针对偶地址端口执行一条读命令可得到8259A当前的中断状态字。状态字D7:1-当前有中断请求
RR(D1):1-准备读取某个寄存器的内容
当写入P位=0,RR、RIS(D0)= 10,下一次针对偶地址端口执行一条IN指令,读出的就是IRR的内容
当写入P位=1,RR、RIS= 11,下一次针对偶地址端口执行IN指令读出的就是ISR寄存器内容


eg:系统分配给主8259A的端口 地址为20H,21H,分配给从8259A的地址为A0H,A1H,初始化程序:
对主8259A的初始化:
MOV AL,11H ;ICW1
OUT 20H,AL ;预置中断请求为边沿触发
JMP $+2 ;延时,转下一条指令
MOV AL,8 ;ICW2
OUT 21H,AL ;预置主8259A中断类型码高5位为00001
JMP $+2
MOV AL,4 ;主ICW3
OUT 21H,AL ;表示主8259A的IR2接有从8259A
JMP $+2
MOV AL,1 ;ICW4
OUT 21H,AL ;完全嵌套,非缓冲方式,非自动中断结束
JMP $+2
......

对从8259A的初始化编程
MOV AL,11H ;ICW1
OUT 0A0H,AL ;预置中断请求为边沿触发
JMP $+2 ;延时,转下一条指令
MOV AL,70H ;ICW2
OUT 0A0H,AL ;预置从8259A中断类型码高5位为01110
JMP $+2
MOV AL,2 ;ICW3
OUT 0A1H,AL 设置从 8259A设备代码为2
JMP $+2
 MOV AL,1 ;ICW4
OUT 0A0H,AL ;完全嵌套,非缓冲方式,非自动中断结束
JMP $+2
......


























你可能感兴趣的:(微机原理)