1.在某使用8088CPU系统中,采用2片8259管理15级中断,采用普通全嵌套、缓冲方式,非自动结束中断,边沿触发方式请求中断。己知主片的IR7引脚连接重片的INT引脚,且主片IRO引脚对应的中断向量号为18H,从片IRO引脚对应的中断向量号为38H。另外,主片在系统中分配的I/O地址是20H (A0=0)和21H (A0=1),从片在系统中分配的I/O地址足1A0H (A0=0)和1A1H (A0=1)。根据以上条件,写出对主片和从片的初始化程序段。(18 分)
时间: 2024-03-06 17:47:32 浏览: 64
以下是主片和从片的初始化程序段:
主片初始化:
```
MOV AL, 00110000B ; ICW1,需要初始化8259A
OUT 20H, AL ; 将ICW1输出到主片的控制端口20H
MOV AL, 00011000B ; ICW2,主片的中断向量号为18H
OUT 21H, AL ; 将ICW2输出到主片的数据端口21H
MOV AL, 00000100B ; ICW3,IR2对应从片
OUT 21H, AL ; 将ICW3输出到主片的数据端口21H
MOV AL, 00000001B ; ICW4,普通全嵌套、缓冲方式
OUT 21H, AL ; 将ICW4输出到主片的数据端口21H
```
从片初始化:
```
MOV AL, 00110000B ; ICW1,需要初始化8259A
OUT 1A0H, AL ; 将ICW1输出到从片的控制端口1A0H
MOV AL, 00111000B ; ICW2,从片的中断向量号为38H
OUT 1A1H, AL ; 将ICW2输出到从片的数据端口1A1H
MOV AL, 00000010B ; ICW3,从片连接到主片IR2
OUT 1A1H, AL ; 将ICW3输出到从片的数据端口1A1H
MOV AL, 00000001B ; ICW4,普通全嵌套、缓冲方式
OUT 1A1H, AL ; 将ICW4输出到从片的数据端口1A1H
```
相关问题
按下列要求对8259进行初始化。系统的CPU为8086、一片8259A、中断请求信号为电平触发、IR2的中断类型号为62H、采用特殊嵌套、非缓冲方式、中断自动结束方式。8259A的端口地址为0480H和0482H。
8259是可编程中断控制器,可以用来管理CPU的中断请求。按照要求对8259进行初始化的步骤如下:
1. 将ICW1写入端口地址0480H,ICW1的值为0x11,表示ICW4将被写入,边沿触发,级联模式,需要ICW4。
2. 将ICW2写入端口地址0481H,ICW2的值为0x60,表示中断向量号从60H开始。
3. 将ICW3写入端口地址0481H,ICW3的值为0x04,表示级联从IR2连接。
4. 将ICW4写入端口地址0481H,ICW4的值为0x01,表示非缓冲方式,中断自动结束方式,特殊嵌套,8086 CPU。
5. 将OCW1写入端口地址0481H,OCW1的值为0xFF,表示屏蔽所有中断请求。
6. 将OCW3写入端口地址0481H,OCW3的值为0x0A,表示选择特殊嵌套模式。
7. 将OCW1写入端口地址0481H,OCW1的值为0xFB,表示只开启IR2的中断请求。
完成以上步骤后,8259A将被正确初始化,可以开始使用中断请求信号了。
某一 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 控制字设置为允许所有中断请求。
阅读全文