MOV[SI],AX ;填中断7偏移量矢量 MOV AX,0000H ;段地址CS=0000H MOV SI,003EH MOV[SI],AX ;填中断7段地址矢量 POP DS ;弹栈 A1: A2: IRQ6: IRQ7:DALLY:MOV AL,13H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,09H OUT 21H,AL MOV AL,3DH OUT 21H,AL STI
MOV CX,0007H
MOV AX,010DH INT 10H
MOV AH,06H
MOV BX,OFFSET INT 10H CALL DALLY LOOP A2
JMP A1 STI CALL DALLY
MOV AX,0136H INT 10H
MOV AL,20H OUT 20H,AL
IRET STI CALL DALLY
MOV AX,0137H INT 10H
MOV AL,20H OUT 20H,AL
IRET PUSH CX PUSH AX
;回车换行 TABLE ;取数据段中ASCII码存放地址 ;调字符串显示“MAIN”
;调延时子程序 ;到7次换行
;8259中断6程序入口
;显示“6” ;显示空格 ;中断返回
;8259中断7程序入口
;显示“7” ;显示空格 ;中断返回
;延时子程序入口
21
MOV CX,0040H
A3: MOV AX,056CH A4: DEC AX
JNE A4 LOOP A3 POP AX POP CX
RET ;子程序返回
CODE ENDS
ENDS START ;程序结束
实验步骤
(1) 画出以上程序流程图。 (2) 按图9-6连接实验电路。
(3) 输入程序并检查无误,经汇编、连接后装入系统。
(4) G=0000:2000,运行实验程序,则连续显示MAIN,先后按动KK1和
KK2微动开关模拟中断请求信号,记录请求顺序及显示结果。
3. 8259级连实验
本实验旨在掌握8259级连方案的硬件接线及编程。
本实验是以系统中的8259作为主片,外接另一片8259作为从片,构成8259级连方式的中断实验线路,如图9-7所示,其中规定从片的中断矢量编号为30-37H,其命令寄存器组编址为00和01。
图9-7 实验接线方案
实验程序如下:
22
STACK SEGMENT STACK
DW 64 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE START: CLI
MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,80H OUT 21H,AL MOV AL,1DH OUT 21H,AL MOV AL,7DH OUT 21H,AL MOV AL,11H OUT 00H,AL MOV AL,30H OUT 01H,AL MOV AL,07H OUT 01H,AL MOV AL,09H OUT 01H,AL MOV AL,,7FH OUT 01H,AL PUSH DS
MOV AX,0000H MOV DS,AX
MOV AX,OFFSET ADD AX,2000H MOV SI,00DCH MOV[SI],AX MOV AX,0000H MOV SI,00DEH MOV [SI],AX POP DS
A1: STI HLT
IRQ7 23
JMP A1
IRQ7: MOV AX,0137H
INT 10H
MOV AX,0120H INT 10H
MOV AL,20H OUT 00H,AL OUT 00H,AL IRET
CODE ENDS
END START 实验步骤
(1) 画出以上程序的流程图。
(2) 按图9-7搭接实验线路,其中INTA连接必须在开机上电之后。 (3) 输入程序并检查无误,经汇编、连接后装入系统。 (4) G=0000:2000,运行实验程序,并通过按动KK1微动开关向从片申请中断,
每按动一次KK1,显示屏上显示一个“7”字符,表明CPU响应了一次中断。
四.思考题
在实验(2)中,若先按动KK2,在按动KK1(此时尚未显示“7”),显示结果会是什么?为什么?
24
相关推荐: