某一8086cpu系统中,采用一片8259a进行中断管理。设定8259a工作在普通全嵌套方式,发送eoi命令结束中断,采用边沿触发方式请求中断,ir0的中断向量号为80h,8259a的两个端口地址为0200h和0201h。请编写初始化程序段。
时间: 2023-05-03 17:01:45 浏览: 379
此问题描述使用的是某个8086 CPU系统,其中使用一个8259A进行中断管理。设置8259A工作在普通全嵌套方式,发送EOI命令结束中断,使用边沿触发方式请求中断,要求中断号为IR0的中断向量号为80H,8259A的两个端口地址为0200H和0201H。请编写初始化程序段。
相关问题
某一 8086CPU 系统中,采用一片 8259A 进行中断管理。设定 8259A 工作在普通全嵌 套方式,发送 EOI 命令结束中断,采用边沿触发方式请求中断,IR0 对应的中断向量号为 90H。另外,8259A 在系统中的 I/O 地址是 FFDCH(A0=0)和 FFDEH(A0=1)。请编写 8259A 的初始化程序段。
以下是一份基于汇编语言的 8259A 初始化程序段,假设 I/O 端口地址为 FFDCH 和 FFDEH:
```
; 初始化 8259A,采用普通全嵌套方式,边沿触发方式请求中断
INIT_8259A PROC NEAR
; 初始化主片
mov al, 00110001b ; ICW1: 边沿触发方式,级联从片,需要 ICW4
out FFDCH, al ; 将 8259A 主片的 ICW1 控制字写入端口 FFDCH
mov al, 00000010b ; ICW2: 中断向量起始地址为 90H
out FFDDH, al ; 将 8259A 主片的 ICW2 控制字写入端口 FFDDH
mov al, 00000100b ; ICW3: 从片连接在 IR2 引脚上
out FFDDH, al ; 将 8259A 主片的 ICW3 控制字写入端口 FFDDH
mov al, 00000001b ; ICW4: 8086 模式,非缓冲区方式
out FFDDH, al ; 将 8259A 主片的 ICW4 控制字写入端口 FFDDH
; 初始化从片
mov al, 00110001b ; ICW1: 边沿触发方式,级联从片,需要 ICW4
out FFDEH, al ; 将 8259A 从片的 ICW1 控制字写入端口 FFDEH
mov al, 00001000b ; ICW2: 中断向量起始地址为 90H + 8
out FFDFH, al ; 将 8259A 从片的 ICW2 控制字写入端口 FFDFH
mov al, 00000010b ; ICW3: 从片连接在主片的 IR2 引脚上
out FFDFH, al ; 将 8259A 从片的 ICW3 控制字写入端口 FFDFH
mov al, 00000001b ; ICW4: 8086 模式,非缓冲区方式
out FFDFH, al ; 将 8259A 从片的 ICW4 控制字写入端口 FFDFH
; 初始化 IMR,允许所有中断请求
mov al, 11111111b ; 0~7 中断请求全部允许
out FFDCH, al ; 将 IMR 控制字写入端口 FFDCH
mov al, 11111111b ; 8~15 中断请求全部允许
out FFDEH, al ; 将 IMR 控制字写入端口 FFDEH
ret
INIT_8259A ENDP
```
上述程序将主片和从片都初始化为边沿触发方式,使用中断向量号为 90H,并且采用普通全嵌套方式。在初始化过程中,IMR 控制字设置为允许所有中断请求。
某 8086系统中,采用单片8259A 进行中断管理。假设8259A工作在普通完全嵌套方式,采用普通EOI命令结束中断、电平触发方式请求中断,IR0对应的中断类型号为88H。8259A 占用的端口地址是 300H和 301H。请编写 8259A 的初始化程序段。
以下是8259A的初始化程序段,假设中断类型号为88H,采用普通完全嵌套方式,电平触发方式请求中断:
```
; 8259A初始化程序段
; 初始化主8259A
mov al, 00110000B ; ICW1,边缘触发,级联8259A,需要ICW4
out 20h, al ; 发送ICW1到主8259A控制端口
mov al, 00001000B ; ICW2,主8259A的中断类型号为88H
out 21h, al ; 发送ICW2到主8259A数据端口
mov al, 00000100B ; ICW3,连接从8259A的IR2引脚
out 21h, al ; 发送ICW3到主8259A数据端口
mov al, 00000001B ; ICW4,普通完全嵌套方式
out 21h, al ; 发送ICW4到主8259A数据端口
; 初始化从8259A
mov al, 00110000B ; ICW1,边缘触发,级联8259A,需要ICW4
out 0A0h, al ; 发送ICW1到从8259A控制端口
mov al, 00000100B ; ICW2,从8259A的中断类型号为08H
out 0A1h, al ; 发送ICW2到从8259A数据端口
mov al, 00000010B ; ICW3,连接主8259A的IR2引脚
out 0A1h, al ; 发送ICW3到从8259A数据端口
mov al, 00000001B ; ICW4,普通完全嵌套方式
out 0A1h, al ; 发送ICW4到从8259A数据端口
; 初始化完毕
```
其中,ICW1是初始化控制字1,ICW2是初始化控制字2,ICW3是初始化控制字3,ICW4是初始化控制字4。主8259A控制端口地址为20h,数据端口地址为21h;从8259A控制端口地址为0A0h,数据端口地址为0A1h。
阅读全文