8259中断控制实验
来源:互联网 发布:除了淘宝助理还有什么 编辑:程序博客网 时间:2024/05/03 18:49
实验步骤
代码清单
;8259单中断应用实验;查看端口资源分配情况,记录实验系统I/O端口始地址INTR_IVADD EQU 003CH ;INTR对应的中断矢量地址 STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT MES DB 'Press any key to exit!',0AH,0DH,0AH,0DH,'$'CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量IM_BAK DB ? ;保存INTR原中断屏蔽字的变量DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES ;显示退出提示 MOV AH,09H INT 21H CLI MOV AX,0000H ;替换INTR的中断矢量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,ES:[DI] MOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址 MOV AX,OFFSET MYISR MOV ES:[DI],AX ;设置当前中断处理程序入口偏移地址 ADD DI,2 MOV AX,ES:[DI] MOV CS_BAK,AX ;保存INTR原中断处理程序入口段地址 MOV AX,SEG MYISR MOV ES:[DI],AX ;设置当前中断处理程序入口段地址 IN AL,21H MOV IM_BAK,AL ;保存INTR原中断屏蔽字 AND AL,7FH OUT 21H,AL STI WAIT1: MOV AH,1 ;判断是否有按键按下 INT 16H JZ WAIT1 ;无按键则跳回继续等待,有则退出 QUIT: CLI MOV AX,0000H ;恢复INTR原中断矢量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,IP_BAK ;恢复INTR原中断处理程序入口偏移地址 MOV ES:[DI],AX ADD DI,2 MOV AX,CS_BAK ;恢复INTR原中断处理程序入口段地址 MOV ES:[DI],AX MOV AL,IM_BAK ;恢复INTR原中断屏蔽寄存器的屏蔽字 OUT 21H,AL STI MOV AX,4C00H ;返回到DOS INT 21HMYISR PROC NEAR ;中断处理程序MYISR PUSH AX MOV AL,39H MOV AH,0EH INT 10H MOV AL,20H INT 10HOVER: MOV AL,20H OUT 20H,AL POP AX IRET MYISR ENDPCODE ENDS END START
阅读全文
0 0
- 8259中断控制实验
- 【51单片机实验】INT0中断控制LED
- 运用定时中断方法控制P1口亮灯实验
- 2013-10-07 实验之按键中断控制Led
- 【微机实验系列】可编程定时/计数器与中断控制
- 定时器中断和按键中断控制dht11温湿度采集串口输出实验源码
- 【实验三】外部中断实验
- 【实验六】定时器中断实验
- ARM课程实验一 普通流水灯控制及systick中断
- 单片机实验期末考试-使用两个外部中断控制8只LED显示的电路
- 第三个实验 通过中断方式让按键控股按键控制LED
- 中断控制器及中断控制
- 中断和定时器实验
- mini2440 定时器中断实验
- mini2440中断实验
- 中断实验(1)
- 中断实验(2)
- 中断实验(3)
- day05周天
- Android中聊天界面表情输入与键盘输入适配各种主题标题栏listview+edittext+button冲突完美解决
- DataGridView中根据字段取值显示不同的行背景色
- mac安装opencv
- phpstorm配置Xdebug 步过 步入 步出意思
- 8259中断控制实验
- codeforces 327D. Block Tower(高级DFS)
- 2017年10月第4周学习总结
- 总结一下将近4个月没有整理博文的原因
- Python学习零散杂记(2017-10-29)
- phpstorm多端口调试
- javaweb相关面试题
- 那些数据可以通过隐式转换成布尔Boolean类型数据?最全面总结,终极版!!!
- python——面向对象