- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IBM-PC_汇编期末考试 总结
8259A的IMR I/O端口地址:21H 功能:8位对应控制8个外设 工作方式:0表示允许外设中断请求,1表示禁止 例如新增允许 IR2 的中断申请 IN AL, 21H ;读入原IMR的内容 AND AL, 1111 1011B ;D2=0,允许IR2的中断申请 OUT 21H, AL ;写入IMR FLAGS的IF 工作方式: IF位=1 允许中断 (STI 开中断) =0 禁止中断 (CLI 关中断) 功能:设置CPU中断允许位 非屏蔽中断(类型号为2):一种特殊的外部中断,与IF位的设置情况无关,CPU不能禁止此类中断。 中断命令寄存器 CPU响应某级中断后,如果不发出中断结束命令 EOI ,则8259A会屏蔽同级或低级的中断申请。 为什么要发中断结束命令 EOI? INTSUB PROC 、、、 MOV AL, 20H ;将中断结束命令字20H 送AL OUT 20H, AL ;写入中断命令寄存器中 IRET ;中断返回 INTSUB ENDP 怎么发中断结束命令 EOI? 用户如何利用保留的中断类型号扩充中断? 中断程序的编写步骤: 1、主程序的编写: (1) 设置中断向量 (2) 设置CPU中断允许位(IF) (3) 设置中断屏蔽位(IMR) 2、中断处理子程序的编写: (1) 中断处理功能 (2) IRET中断返回 例:为中断类型N设置中断向量 MOV AX, 0 MOV ES, AX MOV BX, N*4 MOV AX, OFFSET INTHAND MOV ES: WORD PTR[BX], AX ; 偏移地址?(N*4) MOV AX, SEG INTHAND MOV ES: WORD PTR[BX+2], AX ; 段地址?(N*4+2) …… INTHAND: …… IRET 设置/ 取中断向量(方法1:绝对地址法) DOS功能调用(21H)存取中断向量 设置中断向量: AH=25H AL=中断类型号 DS:DX=中断向量 INT 21H 取中断向量: AH=35H AL=中断类型号 INT 21H 返回时送ES:BX=中断向量 设置/ 取中断向量(方法2:DOS功能调用法) 例8.4 用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 不同? * … CSEG SEGMENT … ASSUME … 主过程名 PROC FAR PUSH DS MOV AX,0 PUSH AX … RET 主过程名 ENDP … GND 主过程名 (3)利用20H号中断调用 调用方式:INT 20H 注:这种方式在产生扩展名为.EXE的可执行文件中是不能使用的,但可用于小模式扩展名为.COM的可执行文件中作为返回DOS的一种方式。 (4)利用DOS的0号功能调用 调用方式: MOV AH,0 INT 21H 注:只有在.COM格式的文件中才可使用 4.
原创力文档


文档评论(0)