正在加载图片...
KK2 KK1- IRQ7 8259 实验内容:程序执行时,每次响应外部中断RQ7时(按KK2微动开关),显示屏 上会显示字符“7”。中断10次后(按下10次),系统处于停机状态。 程序如下:(A9-1.ASMD STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS CODE SEGMENT :保存数据段 MOV AX,0000H MOV DS,AX :数据段清0 MOV AX.OFFSET IRO7 :取中断程序入口地址(相对地址) ADD AX 2000H 加转载时P=2000H地址(绝对地h址 MOV SL.003CH 填8259中断7的中断矢量 MOV [SI].AX 填偏移量矢量 MOVAX.0000H :段地址CS=0000日 MOV SI,003EH MOV [SI].AX :填段地址矢最 CLI :关中断 POPDS 弹栈 IN AL.21H ;读8259中断屏蔽字 ANDAL 7FH :开中断7 OUT2IH AL MOVCX 000AH A1:CMPCX,0000H JNZA2 IN AL,21H :读8259中断屏蔽字 OR AL.80H :关中断7 OUT 2IH,AL A2:STI JMPAI IRQ7:MOV AX,0137H :中断程序入口 66 KK2+ o KK2- o KK1- o o IRQ7 KK1+ o 8259 实验内容:程序执行时,每次响应外部中断 IRQ7 时(按 KK2 微动开关),显示屏 上会显示字符“7”。中断 10 次后(按下 10 次),系统处于停机状态。 程序如下:(A9-1.ASM) STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE START: PUSH DS ;保存数据段 MOV AX, 0000H MOV DS, AX ;数据段清 0 MOV AX, OFFSET IRQ7 ;取中断程序入口地址(相对地址) ADD AX, 2000H ;加装载时 IP=2000H 地址(绝对地址) MOV SI, 003CH ;填 8259 中断 7 的中断矢量 MOV [SI], AX ;填偏移量矢量 MOV AX, 0000H ;段地址 CS=0000H MOV SI, 003EH MOV [SI], AX ;填段地址矢量 CLI ;关中断 POP DS ;弹栈 IN AL, 21H ;读 8259 中断屏蔽字 AND AL, 7FH ;开中断 7 OUT 21H, AL MOV CX, 000AH A1: CMP CX, 0000H JNZ A2 IN AL, 21H ;读 8259 中断屏蔽字 OR AL,80H ;关中断 7 OUT 21H, AL STI HLT A2: STI JMP A1 IRQ7:MOV AX, 0137H ;中断程序入口 8259
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有