中断服务程序的编写

中断服务程序的编写

ID:41379013

大小:602.51 KB

页数:48页

时间:2019-08-23

中断服务程序的编写_第1页
中断服务程序的编写_第2页
中断服务程序的编写_第3页
中断服务程序的编写_第4页
中断服务程序的编写_第5页
资源描述:

《中断服务程序的编写》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、7.2内部中断服务程序编写内部中断服务程序与编写子程序类似利用过程定义伪指令PROC/ENDP第1条指令通常为开中断指令STI最后用中断返回指令IRET通常采用寄存器传递参数主程序需要调用中断服务程序调用前,需要设置中断向量利用INTn指令调用中断服务程序例7.1内部中断服务程序编写80H号中断服务程序功能:显示以“0”结尾字符串的功能利用显示器功能调用INT10H字符串缓冲区首地址为入口参数DS:DX(段地址:偏移地址)传递参数数据段intoffdw?intsegdw?intmsgdb‘AInstructionInterrupt!’db0dh,0a

2、h,0例7.1以“0”结尾回车、换行保存中断向量movax,3580hint21hmovintoff,bx;保存偏移地址movintseg,es;保存段基地址例7.1获取中断向量(DOS功能调用INT21H)功能号:AH=35H入口参数:AL=中断向量号出口参数:ES:BX=中断向量(段地址:偏移地址)设置中断向量pushdsmovdx,offsetnew80hmovax,segnew80hmovds,axmovax,2580hint21hpopds例7.1设置中断向量(DOS功能调用INT21H)功能号:AH=25H入口参数:AL=中断向量号DS:

3、DX=中断向量(段地址:偏移地址)调用中断服务程序;设置入口参数:DS=段地址(已设置)DX=偏移地址movdx,offsetintmsgint80h;调用80H中断服务程序例7.1AInstructionInterrupt!;80H号内部中断服务程序:;显示字符串(以“0”结尾);入口参数:DS:DX=缓冲器首地址new80hprocsti;开中断pushax;保护寄存器pushbxpushsi例7.1进入中断服务程序AInstructionInterrupt!显示字符串movsi,dxnew1:moval,[si]cmpal,0jznew2mov

4、bx,0movah,0ehint10hincsijmpnew1例7.1AInstructionInterrupt!退出中断服务程序new2:popsi;恢复寄存器popbxpopaxiret;中断返回new80hendp例7.1AInstructionInterrupt!主程序结束movdx,intoffmovax,intsegmovds,axmovax,2580hint21hmovax,4c00hint21h例7.1AInstructionInterrupt!7.38259A中断控制器Intel8259A是可编程中断控制器PIC可用于管理Intel

5、8080/8085、8086/8088、80286/80386的可屏蔽中断8259A的基本功能一片8259A可以管理8级中断,可扩展至64级每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择初始化主片8259Amoval,11h;写入ICW1out20h,aljmpintr1intr1:moval,08h;写入ICW2out21h,aljmpintr2intr2:moval,04h;写入ICW3out21h,aljmpintr3intr3:moval,1h;写入ICW4out21h,al中

6、断控制器的初始化程序段初始化从片8259Amoval,11h;写入ICW1out0a0h,aljmpintr5intr5:moval,70h;写入ICW2out0a1h,aljmpintr6intr6:moval,02h;写入ICW3out0a1h,aljmpintr7intr7:moval,01h;写入ICW4out0a1h,al中断控制器的初始化程序段2.操作命令字OCW8259A工作期间,可以随时接受操作命令字OCWOCW共有3个:OCW1~OCW3写入时没有顺序要求,需要哪个OCW就写入那个OCWD7D6D5D4D3D2D1D0OCW1M7M

7、6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字内容写入中断屏蔽寄存器IMRDi=Mi对应IRi,为1禁止IRi中断;为0允许IRi中断。各位互相独立。OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和EOI配合使用产生中断结束EOI命令和改变优先权顺序L2~L0的3位编码指定IR引脚7.5外部中断服务程序编写外部可屏蔽中断服务程序,需注意:发送中断结束命令一般只能采用存储单元传递参数不要使用DOS系统功能调用中断服务程序尽量短小7.5外部中断服务程序(续)编写主程序,需注意:修改中断向量控制CPU的中

8、断允许标志设置8259A的中断屏蔽寄存器例题7.2可屏蔽中断服务程序8259A的IRQ0(向量号为08H)中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。