- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
获取中断向量表项 功能编号 AH=35H 入口参数 AL=向量号 出口参数 ES∶BX=中断向量 功能说明 获取中断向量表项 功能编号 AH=25H 入口参数 AL=向量号 DS∶DX=中断向量 功能说明 设置中断向量表项 7.3 中断控制系统 11.9.1 修改中断向量 设置中断向量表项 ; 取N号中断的原中断向量并保存 CLI ;修改中断向量时要关中断! MOV AH, 35H MOV AL, N INT 21H MOV OLD_SEG,ES MOV OLD_OFF,BX ;设置N的新中断向量 PUSH DS MOV DX, SEG INTRnew ;取新中断向量段基地址 MOV DS, DX MOV DX, OFFSET INTnew ;取新中断向量偏移地址 MOV AL, N ;中断类型号为N MOV AH, 25H INT 21H POP DS IN AL,21H ;8259开中断 AND AL,0FBH ;1111 1011B 开发IR2 OUT 21H,AL STI ;发完数据后恢复原中断向量 MOV DS, OLD_SEG MOV DX, OLD_OFF MOV AL, N MOV AH, 25H INT 21H 11.9.2 发中断屏蔽/开放和中断结束指令 主程序中写OCW1执行中断屏蔽与开放 中断服务程序中写OCW2,发中断结束指令EOI 11.9.3 编写中断服务程序 NEW_INT PROC FAR STI ;开中断 ;寄存器进栈 ;服务程序主体 ;向主/从82C59A发中断结束命令 MOV AL, 20H OUT 0A1H, AL OUT 20H,AL ;寄存器进栈 ;中断返回 IRET NEW_INT ENDP … … … ① 一般格式 开放IRQ2中断的方法: IN AL,21H ;读IMR寄存器 AND AL,0FBH ;对应IRQ2的位置0 OUT 21H,AL 关闭IRQ2中断的方法: IN AL,21H ;读IMR寄存器 OR AL,04H ;对应IRQ2的位置1 OUT 21H,AL ②另外要注意 11.10 中断服务程序设计 (1)要求:电路如图(P80)所示。微动开关SW中断请求连接到IRQ7。每按下一次申请1次中断。按8次后显示“OK!”,程序结束 (2)分析:IRQ7的中断号为0FH,系统分配给打印机中断。当打印机空闲不用时,可以通过修改中断向量加以利用。 例1 利用8259主片设计中断服务程序 (3)程序设计 ;数据段定义 DATA SEGMENT OLD_IV DD ? MK_BUF DB ? BUF DB ‘OK!’,ODH,OAH,$ DATA ENDS ;发中断开放指令 START: MOV AX,DATA MOV DS,AX IN AL,21H MOV MK_BUF,AL CLI AND AL(7FH) OUT 21H,AL ;修改中断向量 CALL GET_IV CALL SET_IV ;主程序主体 XOR DX,DX L1: STI CMP DX,8 JNZ L1 ;中断8次结束,恢复原来的中断向量和屏蔽字 CLI CALL RENEW_IV MOV AL,MK_BUF OUT 21H,AL STI ;中断结束,显示“OK!” MOV AX, SEG_BUF MOV DS, AX MOV DX, OFFSET BUF MOV AH,09H INT 21H ;返回DOS MOV AX,4C00H INT 21H ;中断服务程序SW_INT SW_INT PROC FAR STI PUSH AX INC DX CLI MOV AL,67H ;发EOI命令 OUT 20H,AL POP AX IRET SW_INT ENDP ;获取原中断向量子程序 GET_IV PROC NEAR MOV AX,350FH INT 21H
原创力文档


文档评论(0)