📄 7.asm
字号:
;************************N8251.ASM***********************
STACK SEGMENT
STA DW 50 DUP (?)
TOP EQU LENGTH STA
STACK ENDS
;----------------------------------------------------------
DATA SEGMENT
CSREG DW ?
IPREG DW ?
MES DB 'Strike a key on PC keyboard, it will display '
DB 'on PC screen ',0AH,0DH,0AH,0DH
DB 'Press "ESC" key, return to 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 MES
INT 21H
;----------------------------------------------------------
CALL INIT53
CALL INIT51
;----------------------------------------------------------
WAIT1: MOV DX,221H
IN AL,DX
TEST AL,00000001B
JZ WAIT1
MOV AL,BL
MOV AH,01
INT 21H
CMP AL,27
JZ EXIT
MOV DX,220H
;INC AL
OUT DX,AL
MOV CX,0F00H
DD1: LOOP DD1
RSCAN: MOV DX,221H
IN AL,DX
TEST AL,02H
JZ RSCAN
REVEICE: MOV DX,220H
IN AL , DX
MOV DL,AL
MOV AH,02
INT 21H
JMP WAIT1
EXIT: MOV AX,4C00H
INT 21H
;----------------------------------------------------------
INIT51 PROC NEAR
MOV DX,221H
XOR AX,AX
MOV CX,03
CC: CALL CHAROUT
LOOP CC
;----------------------------------------------------------
MOV AL,40H
CALL CHAROUT
MOV AL,04EH
CALL CHAROUT
MOV AL,27H
CALL CHAROUT
RET
;----------------------------------------------------------
CHAROUT: OUT DX,AL
PUSH CX
MOV CX,0F00H
GG: LOOP GG
POP CX
RET
INIT51 ENDP
;----------------------------------------------------------
INIT53 PROC NEAR
MOV DX,213H
MOV AL,16H
OUT DX,AL
;----------------------------------------------------------
MOV DX,210H
MOV AX,52
OUT DX,AL
RET
INIT53 ENDP
;----------------------------------------------------------
CODE ENDS
END START
;----------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -