该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谁能给讲解一下这个程序的具体思路啊,最好能说详细点。
DATA SEGMENT
DTABLE DB
3FH,06H,5BH,4FH,66H
A8254 EQU 06C0H
B8254 EQU 06C2H
C8254 EQU 06C4H
CON8254
EQU 06C6H
A8255 EQU 0640H
B8255 EQU 0642H
C8255 EQU 0644H
CON8255
EQU 0646H
DATA ENDS
SSTACK SEGMENT
STACK
DW 32
DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:SSTACK,DS:DATA
START:PUSH DS
MOV
AX,0000H
MOV DS,AX
MOV
AX,OFFSET IRQ7 ;取中断入口地址
MOV
SI,003CH ;中断矢量地址
MOV [SI],AX
MOV AX,CS ;段地址
MOV
SI,003EH
MOV [SI],AX
;添IRQ7的段地址矢量
CLI
POP DS
;初始化主片8255
MOV
DX,CON8255
MOV AL,80H
OUT DX,AL
MOV DX,A8255
MOV AL,0H
OUT DX,AL
;初始化主片8259
MOV AL, 11H
OUT 20H, AL ;ICW1
MOV AL, 08H
OUT 21H, AL ;ICW2
MOV AL, 04H
OUT 21H, AL ;ICW3
MOV AL, 01H
OUT 21H, AL ;ICW4
MOV AL, 6FH ;OCW1
OUT 21H, AL
;8254
MOV DX,
CON8254
MOV AL, 10H ;计数器0,方式0
OUT DX, AL
MOV DX,
A8254
MOV AL, 02H
OUT DX, AL
STI
MOV CX,5
LEA
BX,DTABLE
AA1:JMP AA1
IRQ7: PUSH DX
PUSH AX
MOV DX,
A8254
MOV AL, 02H
OUT DX, AL
DEC CX
JZ NEXT
MOV DX,0640H
MOV
AL,
OUT DX,AL
INC BX
NOP
NOP
MOV AL,20H
OUT 20H,AL
POP AX
POP DX ;中断结束命令?
IRET
NEXT: MOV AX,014FH
INT 10H
MOV AX,014BH
INT 10H
POP AX
POP DX;显示字符OK
CODE ENDS
END START