📄 8k2.asm
字号:
;************************8250-1.ASM***********************
STACK SEGMENT
STA DW 50 DUP (?)
TOP EQU LENGTH STA
STACK ENDS
;----------------------------------------------------------
DATA SEGMENT
CSREG DW ?
IPREG DW ?
MESS DB 'THIS IS A PC SERIAL PORT SELF-TEST PROGRAM.',0AH,0DH
DB 'STRIKE A KEY, IT WILL DISPLAY ON MONITOR.',0AH,0DH
DB 'PRESS "ESC" KEY , RETURN DOS.',0AH,0DH,'$'
DATA ENDS
;----------------------------------------------------------
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
;----------------------------------------------------------
START: CLI
MOV AX,DATA
MOV DS,AX
MOV AH,09
MOV DX,OFFSET MESS
INT 21H
;----------------------------------------------------------
MOV DX,2FBH
MOV AL,80H
OUT DX,AL
;----------------------------------------------------------
MOV DX,2F9H
MOV AL,00
OUT DX,AL
MOV DX,2F8H
MOV AL,18H
OUT DX,AL
;----------------------------------------------------------
MOV DX,2FBH
MOV AL,07
OUT DX,AL
;----------------------------------------------------------
MOV DX,2F9H
MOV AL,01
OUT DX,AL
;----------------------------------------------------------
MOV DX,2FCH
MOV AL,0BH
OUT DX,AL
;----------------------------------------------------------
MOV AX,350BH
INT 21H
MOV AX,ES
MOV CSREG,AX
MOV IPREG,BX
PUSH DS
MOV DX,SEG INT_PROC
MOV DS,DX
MOV DX,OFFSET INT_PROC
MOV AX,250BH
INT 21H
POP DS
IN AL,21H
AND AL,11100111B
OUT 21H,AL
;----------------------------------------------------------
STI
AA: MOV AH,01
INT 16H
JZ AA
MOV AH,00
INT 16H
MOV BL,AL
CMP AL,1BH
JZ RT
;----------------------------------------------------------
BB: MOV DX,2FDH
IN AL,DX
TEST AL,00100000B
JZ BB
MOV AL,BL
MOV DX,2F8H
OUT DX,AL
JMP AA
;---------------------------------------------------------
RT: MOV DX,IPREG
MOV AX,CSREG
MOV DS,AX
MOV AX,250BH
INT 21H
MOV AX,4C00H
INT 21H
;----------------------------------------------------------
INT_PROC: PUSH AX
PUSH BX
PUSH DX
MOV DX,2F8H
IN AL,DX
MOV AH,02
MOV DL,AL
INT 21H
MOV AL,20H
OUT 20H,AL
POP DX
POP BX
POP AX
STI
IRET
CODE ENDS
END START
;----------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -