7.asm

来自「几个接口实验的代码。内含:8253、8255、8237、8251、DA0832、」· 汇编 代码 · 共 98 行

ASM
98
字号
;************************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 + =
减小字号Ctrl + -
显示快捷键?