8259实验程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RET CODE ENDS END START
wk.baidu.com
CODE SEGMENT ASSUME CS:CODE INTPORT1 EQU 0060H INTPORT2 EQU 0061H INTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 ORG 11A0H START: CLD ;清除DF, CALL WBUF1;将显示8259-1的数据写入内存。 CALL WRINTVER;装入中断矢量表。 MOV AL,13H MOV DX,INTPORT1 OUT DX,AL;将初始化命令字ICW1写入0060H地址,使
; 缓冲方式,非自动EOI方式,8086模式。
MOV AL,0F7H OUT DX,AL;写操作命令字OCW1。除IR3外,其他中断全部屏蔽。 MOV BYTE PTR DS:[0701H],01H ;TIME=1 STI WATING: CALL DISP JMP WATING;跳转到WATING,如此循环,等待中断的发生。
DISP: MOV DX,077FH;显示子程序。将077AH~077FH中数据显示。 MOV AH,20H DISP0: MOV CX,00FFH MOV BX,DX MOV BL,DS:[BX] MOV BH,0H PUSH DX MOV DX,0FF22H MOV AL,CS:[BX+127BH] OUT DX,AL MOV DX,0FF21H MOV AL,AH OUT DX,AL DISP1: LOOP DISP1 POP DX
ADD BYTE PTR DS:[0701H],01H CMP BYTE PTR DS:[0701H],06H
JNA
INTRE2
;小于等于转移。
MOV DS:[077AH],191AH MOV DS:[077CH],1819H MOV DS:[077Eh],1010H INTRE1: CALL DISP ;在屏幕上显示GOOD。
INTREEUP7: CLI
;发生中断7时,调用的中断处理程序。关中断。
MOV AL,20H MOV DX,INTPORT1 OUT DX,AL ;写操作命令字OCW2,使得工作在一般EOI方式。 MOV DS:[077AH],1C1CH
MOV DS:[077CH],101BH
MOV DS:[077Eh],1010H INTRE3:CALL DISP JMP INTRE3 ;显示EER。 ;进入循环。
DB 90H,0A3H,0A1H,86H,8FH
WBUF1:MOV BX,0
ADD BX,2
;将显示8259-1的数据写入内存。
MOV WORD PTR DS:[BX+077AH],1701H MOV WORD PTR DS:[BX+077AH],0509H ADD BX,2
MOV WORD PTR DS:[BX+077AH],0802H
INTREEUP3: CLI MOV AL,DS:[0701H] ;读取计数值。 CALL CONVERS;调用子程序,将中断计数值存放到077AH单元。 MOV BX,077BH MOV AL,10H MOV CX,05H INTRE0: MOV BYTE PTR DS:[BX],AL INC BX LOOP INTRE0;将077BH~077FH单元,写为10H。 MOV AL,20H MOV DX,INTPORT1 OUT DX,AL;写操作命令字OCW2,使得工作在一般EOI方式。
JMP INTRE1 ;进入死循环。
CONVERS: AND AL,0FH
MOV BX,077AH
MOV DS:[BX],AL
INC RET INTRE2: MOV AL,20H MOV DX,INTPORT1 BX
OUT DX,AL;写操作命令字OCW2,使得工作在一般EOI方式。
STI IRET ;开中断,为下一次中断作准备。 ;中断返回。
;得8259工作在边沿触发,单片8259,需要ICW4(8086模式)。
MOV MOV OUT MOV OUT
AL,08H DX,INTPORT2 DX,AL;写初始化命令字ICW2到0061H。中断矢量从08H开始。 AL,09H DX,AL;写初始化命令字ICW4到0061H地址。工作在一般嵌套方式,
DEC DX
SHR AH,01H JNZ DISP0
MOV DX,0FF22H
MOV AL,0FFH
OUT DX,AL
RET DATA1:DB C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH
DB 0FFH,0CH,89H,0DEH,0C7H,8CH,0F3H,0BFH
WRINTVER:MOV AX,0H ;装入中断矢量表到内存子程序。 MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSW MOV AX,0000h STOSW MOV DI,003CH LEA AX,INTQ7 STOSW MOV AX,0000h STOSW RET
相关文档
最新文档