⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 微机实验4.txt

📁 DATA51 EQU 208H 8251A DATA PORTCTRL51 EQU 209H 8251A COMMAND PORTTIMER2 EQU 202H 8253 COUNT 2TIMCTL
💻 TXT
字号:
DATA51  EQU     208H    ;8251A DATA PORT
CTRL51  EQU     209H    ;8251A COMMAND PORT
TIMER2  EQU     202H    ;8253 COUNT 2
TIMCTL  EQU     203H    ;8253 CTRL PORT
CLK00   EQU     8192    ;8251A CLK 4.77M
BPS00   EQU     1200    ;BPS=1200
FACTOR  EQU     16      ;8251A BPS FACTOR=16

DATA    SEGMENT
MES1    DB  'NOW YOU CAN PLAY A KEY ON THE CPU_KEYBOARD',0AH,0DH
        DB  'IT WILL DISPLAY ON THE TERMINAL_SCREEN!',0AH,0DH
        DB  'END WITH !',0AH,0DH,'$'
MES2    DB  'YOU HAVE ALREADY PLAY A KEY:',0AH,0DH,'$'
DATA    ENDS
stack   segment para stack 'stack'
        db 100(?)
stack   ends
        
CODE    SEGMENT
        ASSUME  CS:CODE,DS:DATA

INIT51  PROC    NEAR
        MOV     DX,CTRL51
        XOR     AX,AX
        MOV     CX,3
LL:     CALL    CHAROUT
        LOOP    LL
        MOV     AL,40H
        CALL    CHAROUT
        MOV     AL,4EH
        CALL    CHAROUT
        MOV     AL,27H
        CALL    CHAROUT
        RET

CHAROUT:OUT     DX,AL
        PUSH    CX
        MOV     CX,2
GG:     LOOP    GG
        pop     cx
        RET
INIT51  ENDP

SET_BPS PROC    NEAR
        MOV     DX,0
        MOV     AX,CLK00
        MOV     BX,1000
        MUL     BX
        MOV     BX,BPS00
        DIV     BX
        MOV     DX,0
        MOV     BX,FACTOR
        DIV     BX
        MOV     BX,AX
        MOV     DX,TIMCTL
        MOV     AL,0B6H
        OUT     DX,AL
        MOV     DX,TIMER2
        MOV     AX,BX
        OUT     DX,AL
        MOV     AL,AH
        OUT     DX,AL
        RET
SET_BPS ENDP

MAIN    PROC    NEAR
START:
        CALL    SET_BPS
        CALL    INIT51
        MOV     AX,DATA
        MOV     DS,AX
        LEA     DX,MES1
        MOV     AH,9
        INT     21H
M0:     MOV     AH,1
        INT     21H
        MOV     BL,AL
M1:     MOV     DX,CTRL51
        IN      AL,DX
        TEST    AL,1
        JZ      M1
        MOV     DX,DATA51
        MOV     AL,BL
        OUT     DX,AL

NEXT:   MOV     DX,CTRL51
        IN      AL,DX
        TEST    AL,2
        JZ      NEXT
        MOV     DX,DATA51
        IN      AL,DX
        INC     AL
        MOV     DL,AL
        MOV     AH,2
        INT     21H
        DEC     AL
        CMP     AL,'!'
        JNZ     M0
OVER:   MOV     AX,4C00H
        INT     21H
CODE    ENDS
        END     START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -