芯片8259的初始化程序怎么写

芯片8259的初始化程序怎么写,第1张

中断控制器8259A的初始化尤为复杂,他的控制字、方式字相对于8253 8255要多。就给你一道例题吧。

某微机系统使用主、从两片8259A管理中断,从片中断请求INT与主片的IR2连接。设主片工作于特殊完全嵌套、非缓冲和非自动结束方式,中断类型号为40H,端口地址为20H和21H。从片工作于完全嵌套、非缓冲和非自动结束方式,中断类型号为70H,端口地址为80H和81H。试编写主片和从片的初始化程序

根据题意,写出ICW1, ICW2, ICW3和ICW4的格式,按图6.21的顺序写入。编写初始化程序如下:

主片8259A的初始化程序如下:

  MOV   AL, 00010001B  级联, 边沿触发, 需要写ICW4

  OUT   20H, AL     写ICW1

  MOV   AL, 01000000B  中断类型号40H

  OUT   21H, AL     写ICW2

  MOV   AL, 00000100B  主片的IR2引脚接从片

  OUT   21H, AL     写ICW3

  MOV   AL, 00010001B  特殊完全嵌套、非缓冲、自动结束

  OUT   21H, AL     写ICW4

  

从片8259A初始化程序如下:

  MOV   AL, 00010001B  级联, 边沿触发, 需要写ICW4

  OUT   80H, AL     写ICW1

  MOV   AL, 01110000B  中断类型号70H

  OUT   81H, AL     写ICW2

  MOV   AL, 00000010B  接主片的IR2引脚

  OUT   81H, AL     写ICW3

  MOV   AL, 00000001B   完全嵌套、非缓冲、非自动结束

  OUT   81H, AL      写ICW4

建议楼主多看看课本,理解里面控制字方式字的格式,多看看例题。

8259A的初始化程序

MOV AL, 00010011b ICW1:单级.要写ICW4

OUT 30H, AL写入ICW1

MOV AL, 60H ICW2: 中断类型号高5位

OUT 31H, AL写入ICW2

MOV AL, 00001001 ICW4:缓冲方式.程序(非自动)EOI方式

OUT 31H, AL写入ICW4

MOV AH, 25H设置中断向量的DOS调用功能号

MOV DS, 3000H 中断服务程序段基址

MOV DX, 2400H IR4中断服务程序偏移址

MOV AL,64HIR4中断类型号

INT 21H调用DOS功能,设置IR4中断向量

MOV DX, 2500H IR5中断服务程序偏移址

MOV AL,65HIR5中断类型号

INT 21H调用DOS功能,设置IR5中断向量

MOV AH, 4CHDOS功能号

INT 21H返回DOS

8259初始化命令字(ICW1-ICW4):8259A的中断 *** 作功能很强,包括中断的请求、屏蔽、排队、结束、级联以及提供中断类型号和查询等 *** 作,并且其 *** 作的方式又有不同。它既能实现向量中断,又能进行中断查询,它可以用于16位机,也可用于8位机。因此,使用起来感到复杂且不好掌握。为此,以8259A的 *** 作功能为线索,来讨论为实现这些功能的各个命令字的含义,为编程使用 8259A提供一些思路。

# ICW1~ICW4在初始化程序中设定,且在整个工作过程中保持不变。

# ICW1~ICW4必须按顺序设定。

# ICW1写入8259偶地址中(A0=0,在AT机中为20H/A0H),ICW2~ICW3写入8259奇地址中(A0=1,在AT机中为21H/A1H)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7924433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存