- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理汇编语言程序设计好文档
3. 中断程序设计 中断源:引起中断的事件 外中断(硬中断):外设的I/O请求 —— 可屏蔽中断 电源掉电/奇偶错 —— 非屏蔽中断 内中断(软中断):INT指令/CPU错(除法错、溢出) 非屏蔽中断请求 中断逻辑 INT n INTO 除法错 单步 n 4 0 1 CPU 2 NMI 8259A 可编程中断控制器 (PIC) IR0 系统定时器 IR1 键盘 IR2 彩色/图形接口 IR3 保留 IR4 串行通讯口 IR5 保留 IR6 软盘 IR7 打印机 INTR 08 09 0A 0B 0C 0D 0E 0F 中断操作的5个步骤: (1) 取中断类型号 (2) 计算中断向量地址 (3) 取中断向量,偏移地址送IP,段地址送CS (4) 转入中断处理程序 (5) 中断返回到INT指令的下一条指令 例:BIOS中断 INT 4AH 4AH?4 = 128H 4AH?4+2 = 12AH (128H) ? IP (12AH) ? CS 中断向量表 IBM-PC中断系统能处理256种类型的中断,类型号为0~0FFH。中断向量表是各种中断处理程序的地址表。 类型0的(IP) 类型0的(CS) 类型1的(IP) 类型1的(CS) 类型N的(IP) 类型N的(CS) 类型255的(IP) 类型255的(CS) 00000 00004 4*N 003FC DOS功能调用(21H)存取中断向量 设置中断向量: AH=25H AL=中断类型号 DS:DX=中断向量 INT 21H 取中断向量: AH=35H AL=中断类型号 INT 21H 返回时送ES:BX=中断向量 例1 用DOS功能调用存取中断向量 MOV AL, N MOV AH, 35H INT 21H ; 取原中断向量 PUSH ES PUSH BX ; 保存原中断向量 PUSH DS MOV AX, SEG INTHAND MOV DS, AX MOV DX, OFFSET INTHAND MOV AL, N MOV AH, 25H INT 21H ; 设置新的中断向量 POP DS …… POP DX POP DS MOV AL, N MOV AH, 25H INT 21H ; 恢复原中断向量 RET ; INTHAND: …… IRET 中断程序的编写步骤: 主程序:(1) 设置中断向量 ( DOS调用 AH=25H, AH=35H ) (2) 设置CPU中断允许位 FLAGS中的IF位=1 允许中断 (STI 开中断) =0 禁止中断 (CLI 关中断) (3) 设置中断屏蔽位 I/O端口 21H 中断屏蔽寄存器 中断屏蔽位=0 允许中断 =1 禁止中断 7 6 5 4 3 2 1 0 定时器 键 盘 打印机 中断屏蔽寄存器21H 7 6 5 4 3 2 1 0 中断命令寄存器20H EOI MOV AL, 20H OUT 20H, AL 中断处理子程序: 保存工作寄存器 (PUSH) 开中断( STI ) 中断处理功能 关中断( CLI
文档评论(0)