8259实验程序.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8259实验程序

* CODE SEGMENT ASSUME CS:CODE INTPORT1 EQU 0060H INTPORT2 EQU 0061H INTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 ORG 11A0H START: CLD ;清除DF, CALL WBUF1;将显示8259-1的数据写入内存。 CALL WRINTVER;装入中断矢量表。 MOV AL,13H MOV DX,INTPORT1 OUT DX,AL;将初始化命令字ICW1写入0060H地址,使 ;得8259工作在边沿触发,单片8259,需要ICW4(8086模式)。 MOV AL,08H MOV DX,INTPORT2 OUT DX,AL;写初始化命令字ICW2到0061H。中断矢量从08H开始。 MOV AL,09H OUT DX,AL;写初始化命令字ICW4到0061H地址。工作在一般嵌套方式, ; 缓冲方式,非自动EOI方式,8086模式。 MOV AL,0F7H OUT DX,AL;写操作命令字OCW1。除IR3外,其他中断全部屏蔽。 MOV BYTE PTR DS:[0701H],01H ;TIME=1 STI WATING: CALL DISP JMP WATING;跳转到WATING,如此循环,等待中断的发生。 WRINTVER:MOV AX,0H ;装入中断矢量表到内存子程序。 MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSW MOV AX,0000h STOSW MOV DI,003CH LEA AX,INTQ7 STOSW MOV AX,0000h STOSW RET INTREEUP3: CLI MOV AL,DS:[0701H] ;读取计数值。 CALL CONVERS;调用子程序,将中断计数值存放到077AH单元。MOV BX,077BH MOV AL,10H MOV CX,05H INTRE0: MOV BYTE PTR DS:[BX],AL INC BX LOOP INTRE0;将077BH~077FH单元,写为10H。 MOV AL,20H MOV DX,INTPORT1 OUT DX,AL;写操作命令字OCW2,使得工作在一般EOI方式。 ADD BYTE PTR DS:[0701H],01H CMP BYTE PTR DS:[0701H],06H JNA INTRE2 ;小于等于转移。 MOV DS:[077AH],191AH MOV DS:[077CH],1819H MOV DS:[077Eh],1010H INTRE1: CALL DISP ;在屏幕上显示GOOD。 JMP INTRE1 ;进入死循环。 CONVERS: AND AL,0FH MOV BX,077AH MOV DS:[BX],AL INC BX RET INTRE2: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL;写操作命令字OCW2,使得工作在一般EOI方式。 STI ;开中断,为下一次中断作准备。 IRET ;中断返回。 INTREEUP7: CLI ;发生中断7时,调用的中断处理程序。关中断。 MOV AL,20H MOV DX,INTPORT1 OUT DX,AL ;写操作命令字OCW2,使得工作在一般EOI方式。 MOV DS:[077AH],1C1CH MOV DS:[077CH],101BH M

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档