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

📄 l4.asm

📁 8255并行接口键盘实验
💻 ASM
字号:
DATA   SEGMENT
BUFFER0    DB   0
BUFFER1    DW   0
BUFFER2    DW   0
COUNT   DB   0
BUFFER  DB   20 DUP(0)
TABLE   DB   0,0,'1234567890-=',0,0
        DB   'QWERTYUIOP[]',0DH,0
        DB   'ASDFGHJKL;',27H,0,0,0
        DB   'ZXCVBNM,./',0,0,0
        DB    ' ',0,0,0,0,0,0,0,0,0,0,0,0,0
        DB   '789-456+1230.'
DATA   ENDS
STACK  SEGMENT  PARA  STACK'STACK'  
       DB   100 DUP(?)
STACK  ENDS
CODE   SEGMENT  
       ASSUME   CS: CODE,  DS: DATA, ES: DATA, SS: STACK
START  PROC   FAR
BEGIN: PUSH   DS
       MOV    AX,0
       PUSH   AX
       MOV    AX,DATA
       MOV    DS,AX
       MOV    ES,AX
       PUSH   DS
       PUSH   ES
       CLI                      
       MOV    AX,  3509H                
       INT    21H                        
       MOV    BUFFER1, ES
       MOV    BUFFER2, BX
                               
       MOV    AX,SEG NEXT      
       MOV    DS,AX
       MOV    DX,OFFSET  NEXT 
       MOV    AX,2509H         
       INT    21H
                             
       MOV    AL,0FCH
       OUT    21H,AL
       POP    ES
       POP    DS
	   LEA 	  SI,BUFFER
LOOP1: STI						
       HLT
       MOV    AL,BUFFER0
       CMP    AL,0DH
       JNZ    LOOP1                              
       MOV    AX,  BUFFER1		
       MOV    DS,  AX
       MOV    DX,  BUFFER2
       MOV    AX,  2509H
       INT    21H
       RET
START  ENDP                                
NEXT  PROC					
       PUSH   DS
       PUSH   ES
       PUSH   BX
       PUSH   AX
       MOV    AX,DATA
       MOV    DS,AX
       MOV    ES,AX
       IN     AL,60H
       PUSH   AX
       IN     AL,61H
       OR     AL,80H
       OUT    61H,AL            
       AND    AL,7FH
       OUT    61H,AL           
       POP    AX
       TEST   AL,80H
       JNZ    NEXT2
       MOV    BX, OFFSET  TABLE
       XLATB
       CMP    AL,0DH
       JNZ    LOOP2
       MOV    BUFFER0,AL
LOOP2: CMP    AL,0
       JZ     NEXT2
       MOV    [SI],AL
       MOV    DL,AL
       MOV    AH,2
       INT    21H
       INC    SI
       INC    COUNT
       CMP    COUNT,20
       JNZ    NEXT2
       DEC    SI
       MOV    CX,20
       MOV    DL,0DH
       MOV    AH,2
       INT    21H
       MOV    DL,0AH
       MOV    AH,2
       INT    21H
reverse:MOV   DL,[SI]
       MOV    AH,2
       INT    21H
       DEC    SI
       LOOP   reverse
       MOV    AL,0FFH
       OUT    21H,AL
NEXT2: MOV    AL,20H
       OUT    20H,AL
       POP    AX
       POP    BX
       POP    ES
       POP    DS
       IRET
NEXT   ENDP
CODE   ENDS      
       END    BEGIN

⌨️ 快捷键说明

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