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

📄 zhsy.asm

📁 (1)完成键盘
💻 ASM
字号:
DATA     SEGMENT
LU       equ ioport+29ah                              
FANG     equ ioport+290h 
ioport   equ 0c000h-280h                             
ioport1  equ ioport+283h
ioport2  equ ioport+280h
ioport3  equ ioport+28bh
ioport4  equ ioport+288h
DAT      DB 60000 DUP(?)                         
TS1      DB 'Press any key to record:','$'     
TS2      DB 13,10,' Playing:','$'             
DATA     ENDS
CODE     SEGMENT
	 ASSUME CS:CODE,DS:DATA
START    PROC FAR
STT:     PUSH DS
         SUB AX,AX
         PUSH AX
         MOV AX,DATA                             
	 MOV  DS,AX
	 
         MOV  DX,OFFSET TS1                    
	 MOV  AH,9
	 INT 21H
	 MOV AL,0
    JC1 :MOV AH,0BH                           
         INT 21H
         CMP AL,0FFH
         JNE JC1                                   
         
         CALL  LY                               
	 MOV DX,OFFSET TS2                    
	 MOV AH,9
	 INT 21H
    JC2 :MOV AH,0BH                             
         INT 21H
         CMP AL,0FFH
         JNE JC2

PLAY: 	 CALL FY                               
	 
         MOV AL,0
         MOV AL,07H
	 INT 21H
	 CMP AL,20H
	 JZ PLAY
	 MOV AH,4CH                              
	 INT 21H

LY       PROC NEAR                               
	 PUSH DI
         PUSH CX
         PUSH DX
         PUSH AX
         
         MOV DI,OFFSET DAT                   
	 MOV CX,60000                           
	 CLD
   TTTT :MOV DX,LU                             
	 OUT DX,AL
	 CALL DELAY                               
	 IN AL,DX                                
	 MOV [DI],AL
         INC DI                                 
	 LOOP TTTT                          
	
         POP AX   
         POP DX
         POP CX
         POP DI
         RET 
         LY ENDP                                    

FY       PROC NEAR                                 
	 PUSH SI
         PUSH CX
         PUSH DX
         PUSH AX
         
         MOV CX,60000                            
	 MOV SI,OFFSET DAT                 
	 MOV DX,0
   FFFF: MOV DX,FANG
	 MOV AL,[SI]
         OUT DX,AL
         INC SI                             
	 CALL DELAY                              
	 LOOP FFFF                           
	 
         POP AX
         POP DX
         POP CX
         POP SI
         RET                                     
         FY ENDP

DELAY	PROC	NEAR                            
	PUSH DX
	MOV	AL,10H                           
        MOV     DX,ioport1
	OUT	DX,AL
	MOV	AL,200                           
        MOV     DX,ioport2
	OUT	DX,AL
        MOV     DX,ioport3                            
	MOV     AL,90h
	OUT     DX,AL
        MOV     DX,ioport4                              
        MOV     AL,0
DELAY1:	IN   AL,DX                                
	CMP  AL,1
        JNE  DELAY1                            
	POP  DX
	RET                                      
	DELAY ENDP
	CODE ENDS
	END STT

⌨️ 快捷键说明

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