- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
D2、D1、D0:L2?L0位,只有SL位为1时,这三位才有意义。L2?L0位有三个作用:一是当OCW2给出特殊中断结束命令时,L2、L1和L0三位的编码指出了要清除中断服务寄存器ISR中的哪一位;二是当OCW2给出结束中断且指定新的最低优先级命令时,将ISR中与L2、L1和L0编码值对应的位清0,并将当前系统最低优先级设为L2、L1和L0指定的值;三是当OCW2给出优先级特殊循环命令时,由L2、L1和L0的编码指定循环开始的最低优先级。 例: IN AL , PORT;AL=0FCH 1 1 1 1 1 1 0 0 说明有中断,IR4为最高优先权 * 3)OCW3 OCW3的功能有三个方面:设置和撤消特殊屏蔽方式、设置中断查询方式以及设置对8259A内部寄存器的读出。OCW3写入A0=0的端口,格式如图所示。 * D4和D3位是特征位,D4D3=01表示写入的是OCW3。 D7:无关位,可设为任意值。 D6:ESMM位,即允许特殊屏蔽方式位。该位为1时SMM位才有意义。 D5:SMM即特殊屏蔽方式位。为1,表示设置特殊屏蔽方式;为0,表示清除特殊屏蔽方式。 D2:P位,为1时表示该OCW3用做查询命令(查询方式在前面已经介绍过,在此不再赘述);为0表示非查询方式。 D1和D0:RR位和RIS位。这两位的组合用于指定对中断请求寄存器(IRR)和中断服务寄存器(ISR)内容的读出。D1D0=10时,表明紧接着要读出IRR的值;D1D0=11时,表明紧接着要读出ISR的值。 * §5.4 8259A的应用 一.8259A的读操作 在PC机中8259A的端口地址为20H和21H。常用的读操作有如下几种。 (1) 读出IRR的值:先向20H端口写0AH(OCW3 RR=1、RIS=0),再读20H端口。 例如: MOV AL,0AH ;OCW3=0AH OUT 20H,AL ;OCW3写入8259A IN AL,20H ;读出IRR 内容 * (2) 读出ISR的值:先向20H端口写0BH(OCW3 RR=1、RIS=1),再读20H端口。 例如: MOV AL,0BH ;OCW3=0BH OUT 20H,AL ;OCW3写入8259A IN AL,20H ;读出ISR 内容 * (3) 读查询字(读出最高级别的中断请求IR):先向20H端口写0CH(OCW3 P=1),再读20H端口。例如: MOV AL,0CH ;OCW3=0CH OUT 20H,AL ;OCW3写入8259A IN AL,20H ;读出查询字内容 * (4) 读IMR的值。随时可用奇地址读IMR的值,并对其作修改。 例1: IN AL,21H ;读IMR AND AL,7FH ;开放IR7中断 OUT 21H,AL ;修改IMR 例2: IN AL,21H ;读IMR OR AL,80H ;关闭IR7中断 OUT 21H,AL ;修改IMR * 二.8259A应用举例 例1: 8259A 在PC/XT机中的连接 * 从图中可以看出8259A的IR2端是保留端,其余都已被占用。现假设某外设的中断请求信号由IR2端引入,要求编程实现CPU每次响应该中断时屏幕显示字符串“WELCOME!”。 已知主机启动时8259A中断类型号的高5位已初始化为00001,故IR2的类型号为0AH;8259A的中断结束方式为非自动结束,即要在服务程序中发EOI命令(OCW2=20H) ;8259A的端口地址为20H和21H。程序如下: * DATA SEGMENT MESS DB WELCOME!,0AH,0DH,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,SEG INT2 MOV DS,AX MOV DX,OFFSET INT2 MOV AX
文档评论(0)