跪求汇编实验-可编程中断控制器(8259A)实验 在线等,先谢谢高手了,帮帮小弟吧
时间:2008-11-13
来源:互联网
(1)编程序,用手动产生的正脉冲(上升沿)作为中断申请,引到IRQ7,使得每当按动产生单个正脉冲的按钮时,在CRT上显示字符“A”
(2)编程序,用手动产生的正脉冲(上升沿)作为中断申请,引到IRQ7,使得每当按动产生单个正脉冲的按钮时,在CRT上循环显示“This is 8086 interupt。”。
(3)编程序,用手动产生的正脉冲(上升沿)作为中断申请,引到IRQ7,使得每当按动产生单个正脉冲的按钮时,在CRT上显示“This is 8086 interupt。”。中断5次后结束
(2)编程序,用手动产生的正脉冲(上升沿)作为中断申请,引到IRQ7,使得每当按动产生单个正脉冲的按钮时,在CRT上循环显示“This is 8086 interupt。”。
(3)编程序,用手动产生的正脉冲(上升沿)作为中断申请,引到IRQ7,使得每当按动产生单个正脉冲的按钮时,在CRT上显示“This is 8086 interupt。”。中断5次后结束
作者: dlmuliuyang 发布时间: 2008-11-13
可怜的孩子,快起来吧,
这些都在书上写了呀,求人不如求己,多看书找资料就能解决了。
这些都在书上写了呀,求人不如求己,多看书找资料就能解决了。
作者: rzsheng 发布时间: 2009-03-20
IRQ7是25针串口中断是int 15
作者: jxc25 发布时间: 2009-03-20
1、8259A可编程中断控制器介绍及资源说明
8259A可以管理8级中断,可以将中断源优先级排队,辨别中断源,提供中断矢量。在级连使用时,可以构成64级中断系统。
8259A的编程,就是根据需求,向8259A芯片中写入初始化命令字ICW1-ICW4以及操作命令字OCW1-OCW3。
系统提供了两片8259A芯片,一片是与控制系统公用,(在实验板的左下方),级连时作为主片,口地址为20h,21h,另一片在实验板中上方,口地址为00h,01h。
中断源用实验板中的R-S触发器(在实验板的右侧)产生,四个引脚,kk1+,kk1-,kk2+,kk2-。
2、8259A编程说明
a)、8259A初始化编程
b)、系统的8259A初始化参数:
ICW1:13h,ICW2:08h,ICW3:不用,ICW4:0Dh
即单片、要ICW4、向量从8开始,缓冲方式、正常EOI。
c)、系统的8259A的0号,4号中断被系统使用,(时钟和串口使用),
编程的时候,不要用它们,也不要屏蔽它们。其他中断都可以使用。
d)、由于系统加载程序是从0000:2000开始,所以中断服务程序的地址
偏移量要注意处理一下,偏移量加上2000 h。
3、 实验一:单片8259A的中断实验
a)、实验线路图:
b)、程序流程图
(由于用的是系统的8259A片,系统已经初始化过了,这个程序不
用再次初始化了)
c)、参考程序8259A1.asm
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
start:
PUSH DS
;设置irq7中断服务程序地址
;中断服务地址放在0000:003c-0000:003f
MOV AX,0000H
MOV DS,AX
MOV AX,OFFSET IRQ7
ADD AX,2000H
MOV SI,003CH
MOV [SI],AX
MOV AX,0000H
MOV SI,003EH
MOV [SI],AX
CLI
POP DS
;读IMR,去掉对irq7的屏蔽,再写入 IMR
IN AL,21H
AND AL,7FH
OUT 21H,AL
;设置中断服务次数
MOV CX,000AH
A1:
CMP CX,0000H
JNZ A2
;10次服务后,重设IMR,屏蔽Irq7
IN AL,21H
OR AL,80H
OUT 21H,AL
STI ;开中断
HLT ;处理器暂停,等待PC机操作
A2:
STI ;循环,等待中断
JMP A1
;中断服务中,调用bios 显示功能,显示7和于一个空格,中断次数减一
IRQ7 proc near
MOV AX,0137H
INT 10H
MOV AX,0120H
INT 10H
DEC CX
;正常EOI,通知8259A此次服务结束
MOV AL,20H
OUT 20H,AL
CLI
IRET
IRQ7 endp
CODE ENDS
END START
d)、实验步骤:
1)、接好试验线路
2)、编写修改程序,编译连接,加载到0000:2000
3)、运行程序g=0000:2000
4)、按动KK2开关,屏幕上将有“7 ”显示,直到10次,按“停止”结束程序,返回控制。
给你参考哈,这是输出10次‘7’的程序哈!
8259A可以管理8级中断,可以将中断源优先级排队,辨别中断源,提供中断矢量。在级连使用时,可以构成64级中断系统。
8259A的编程,就是根据需求,向8259A芯片中写入初始化命令字ICW1-ICW4以及操作命令字OCW1-OCW3。
系统提供了两片8259A芯片,一片是与控制系统公用,(在实验板的左下方),级连时作为主片,口地址为20h,21h,另一片在实验板中上方,口地址为00h,01h。
中断源用实验板中的R-S触发器(在实验板的右侧)产生,四个引脚,kk1+,kk1-,kk2+,kk2-。
2、8259A编程说明
a)、8259A初始化编程
b)、系统的8259A初始化参数:
ICW1:13h,ICW2:08h,ICW3:不用,ICW4:0Dh
即单片、要ICW4、向量从8开始,缓冲方式、正常EOI。
c)、系统的8259A的0号,4号中断被系统使用,(时钟和串口使用),
编程的时候,不要用它们,也不要屏蔽它们。其他中断都可以使用。
d)、由于系统加载程序是从0000:2000开始,所以中断服务程序的地址
偏移量要注意处理一下,偏移量加上2000 h。
3、 实验一:单片8259A的中断实验
a)、实验线路图:
b)、程序流程图
(由于用的是系统的8259A片,系统已经初始化过了,这个程序不
用再次初始化了)
c)、参考程序8259A1.asm
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
start:
PUSH DS
;设置irq7中断服务程序地址
;中断服务地址放在0000:003c-0000:003f
MOV AX,0000H
MOV DS,AX
MOV AX,OFFSET IRQ7
ADD AX,2000H
MOV SI,003CH
MOV [SI],AX
MOV AX,0000H
MOV SI,003EH
MOV [SI],AX
CLI
POP DS
;读IMR,去掉对irq7的屏蔽,再写入 IMR
IN AL,21H
AND AL,7FH
OUT 21H,AL
;设置中断服务次数
MOV CX,000AH
A1:
CMP CX,0000H
JNZ A2
;10次服务后,重设IMR,屏蔽Irq7
IN AL,21H
OR AL,80H
OUT 21H,AL
STI ;开中断
HLT ;处理器暂停,等待PC机操作
A2:
STI ;循环,等待中断
JMP A1
;中断服务中,调用bios 显示功能,显示7和于一个空格,中断次数减一
IRQ7 proc near
MOV AX,0137H
INT 10H
MOV AX,0120H
INT 10H
DEC CX
;正常EOI,通知8259A此次服务结束
MOV AL,20H
OUT 20H,AL
CLI
IRET
IRQ7 endp
CODE ENDS
END START
d)、实验步骤:
1)、接好试验线路
2)、编写修改程序,编译连接,加载到0000:2000
3)、运行程序g=0000:2000
4)、按动KK2开关,屏幕上将有“7 ”显示,直到10次,按“停止”结束程序,返回控制。
给你参考哈,这是输出10次‘7’的程序哈!
作者: xineraimaomao 发布时间: 2010-12-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28