📄 ad1.txt
字号:
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
ADC PROC FAR
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
INTPORT1 EQU 0020H;中断号
INTPORT2 EQU 0021H
CONTPORT1 EUQ 0060H;数据口
DATAPORT1 EQU 0061H;状态口
CONTPORT EQU 00DFH;8279命令口
DATAPORT EQU 00DEH;8279数据口
DATA1 EQU 0500H
ORG 1000H
JMP START
START:
CALL LEDDISP
MOV AX,0H
MOV DX,AX
CALL WRINTVER
MOV AL,13H ;8259初始化ICW1
OUT INTPORT1,AL
MOV AL,08H ;8259初始化ICW2
OUT INTPORT2,AL
MOV AL,01H ;初始化ICW4
OUT INTPORT2,AL
MOV AL,0EH
OUT DX,AL
MOV AL,0CH
OUT DX,AL
MOV AL,0F7H ;开IR3中断
OUT INTPORT2,AL
STI ;开CUP的中断
WATING:JMP WATING
WRINTVER:MOV AX,0H
MOV ES,AX
MOV DI,002CH
LEA AX,INTIRQ3
STOSW
MOV AX,CS
STOSW
RET
MOV CX,100
MOV DX,CONTPORT1
MOV AL,00H
OUT DX,AL
INTIRQ3:PUSH AX
PUSH DX
PUSH DI
CLI
MOV DX,CONTPORT1
MOV AL,0DH
OUT DX,AL
NOP
NOP
MOV AL,0CH
OUT DX,AL
MOV DX,CONTPORT1
IN AL,DX
NOP
MOV DI,PRT
MOV [DI],AL
INC DI
MOV PRT,DI
// MOV AL,90H
// MOV DX,CONTPORT
// IN AL,DX
MOV AL,20H
MOV DX,INTPORT1
OUT DX,AL
STI
POP DI
POP DX
POP AX
IRET
MAIN: MOV DX,DATAPORT1
MOV AL,0FH
OUT DX,AL
NOP
NOP
MOV AL,0EH
OUT DX,AL
STI
HLT
DEC CX
JNZ MAIN
CLI
RET
leddisp: mov al,90h
mov dx,contport
out dx,al
mov byte ptr ds:[0600h],00
led1:cmp byte ptr ds:[0600h],07h
ja led2
mov bl,ds:[0600h]
mov bh,0h
mov al,ds:[bx+data]
mov dx,dataport
out dx,al
add byte ptr ds:[0600h],01h
jnz led1
led2:ret
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -