8259A中断控制器和8253计数器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8259A中断控制器和8253计数器·定时器实验

浏览次数:1129次悬赏分:50|解决时间:2008-12-2 12:17 |提问者:liushang8811

程序1

参考流程图

1:开始

2:关中断

3:初始化8253(设定定时器0和1的工作方式及技术初值)

4:使用INT 21H的35H号功能获取0AH号中断向量并保存。

5:使用INT 21H的25H号功能设置0AH号中断的新中断向量。

6:设置IMR寄读器及允许IRQ2中断。

7:开中断

8:循环等待中断。

程序2

参考流程图:编写中断服务程序。要求主机每响应一次IRQ2的中断时,就执行一次终端服务子程序。中断服务子程序的核心就是显示字符串“THIS IS A 8259A INTERRUPT”

1:开始

2:显示字符串

3:技术结束?终端结束并返回

4:关中断

5: 使用INT 21H的25H号功能恢复原OAH号中断的中断向量

6: 恢复IMR寄存器的原值

7: 开中断

8: 结束,返回DOS

用汇编,急用,跪谢

1.

MOV AX,FLAGS

AND AX,1111110111111111B ;关中断

MOV FLAGS,AX

MOV AL,00110110B ;假设定时器0设为方式3

OUT 43H,AL

MOV AL,XXH ;

OUT 40H,AL

MOV AL,XXH

OUT 40H,AL ;定时器0初值

MOV AL,01110110B ;假设定时器1设为方式3

OUT 43H,AL

MOV AL,XXH ;

OUT 41H,AL

MOV AL,XXH

OUT 41H,AL ;定时器1初值

MOV AH,35H

MOV AL,0AH

INT 21H

PUSH ES ;保存原向量

PUSH BX

PUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DX

MOV DS,XXH ;新中断向量段地址

MOV DX,XXH ;新中断向量偏移量

MOV AH,25H

MOV AL,0AH

INT 21H

POP DX

POP DS

IN AL,21H

MOV SAV_IR,AL ;保存原8259设置(必须事先在数据段中为SAV_IR开辟一个字节的空间)

OR AL,00000100B ;开IR2

OUT 21H,AL

MOV AX,FLAGS

OR AX,0000001000000000B ;开中断

MOV FLAGS,AX

WAIT1:

JMP WAIT1

2.

MESSAGE DB 'THIS IS A 8259A INTERRUPT$'

SAV_IR DB 0

MOV AH,9

MOV DX,SEG MESSAGE

MOV DS,DX

MOV DX,OFFSET MESSAGE

INT 21H

MOV AX,FLAGS

AND AX,1111110111111111B ;关中断

MOV FLAGS,AX

PUSH DS ;借用DS和DX作中断入口,暂时保存原值

PUSH DX

MOV DS,ES

MOV DX,BX ;原0AH中断向量值

MOV AH,25H

MOV AL,0AH

INT 21H

POP DX

POP DS

MOV AL,SAV_IR ;读回8259原设置值

OUT 21H,AL

MOV AX,FLAGS

OR AX,0000001000000000B ;开中断

MOV FLAGS,AX

IRET

回答者:shinesnow_wy|三级| 2008-11-12 18:51 呵呵~~我们是同行啊~~~也许是对的吧~~顶~~

顶~~~

顶~~~~MOV AX,FLAGS

AND AX,1111110111111111B ;关中断

MOV FLAGS,AX

MOV AL,00110110B ;假设定时器0设为方式3

OUT 43H,AL

MOV AL,XXH ;

OUT 40H,AL

MOV AL,XXH

OUT 40H,AL ;定时器0初值

MOV AL,01110110B ;假设定时器1设为方式3 OUT 43H,AL

MOV AL,XXH ;

OUT 41H,AL

MOV AL,XXH

OUT 41H,AL ;定时器1初值

MOV AH,35H

MOV AL,0AH

INT 21H

PUSH ES ;保存原向量

PUSH BX

PUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DX

MOV DS,XXH ;新中断向量段地址

MOV DX,XXH ;新中断向量偏移量

MOV AH,25H

MOV AL,0AH

INT 21H

POP DX

POP DS

相关文档
最新文档