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

📄 zh.asm

📁 (1)完成键盘
💻 ASM
字号:
DATA SEGMENT

        ioport equ 0c000h-280h              
        ;8255A
        ioport1 equ ioport+288h
        ioport2 equ ioport+28bh
        ;8253
        ioport3 equ ioport+280h
        ioport4 equ ioport+283h
        ;ADC0809
        ioport5 equ ioport+298h
        ;DAC0832
        ioport6 equ ioport+290h

ORG 1000H
REC DB 13,10,"Press any key to record.",13,10,'$'
PLY DB 13,10,"Press any key to play, SPACE to play again, else to exit.",13,10,'$'
DAT DB 60000 DUP(?)

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

    LEA DX,REC    
    MOV AH,09H
    INT 21H

    MOV AL,0
CHK:MOV AH,0BH    
    INT 21H
    CMP AL,0FFH
    JE NEXT
    JMP CHK

NEXT:CALL MYRECORD    

    LEA DX,PLY   
    MOV AH,09H
    INT 21H

    MOV AL,0
CHK1:MOV AH,0BH    
    INT 21H
    CMP AL,0FFH
    JE NEXT1
    JMP CHK1

NEXT1:CALL PLAY    

    MOV AL,0
CHK2:MOV AH,0BH    
    INT 21H
    CMP AL,0FFH
    JE NEXT2
    JMP CHK2

NEXT2:MOV AH,07H   
    INT 21H
    CMP AL,20H
    JE NEXT1
    MOV AH,4CH
    INT 21H
    

    RET
START ENDP

DELAY PROC NEAR

    PUSH DX
    PUSH AX

    MOV DX,ioport4
    MOV AL,00010000B
    OUT DX,AL

    MOV DX,ioport3
    MOV AL,200
    OUT DX,AL

    MOV DX,ioport2
    MOV AL,10010000B
    OUT DX,AL
    MOV DX,ioport1
    MOV AL,0

CHKPA0:IN AL,DX
    CMP AL,1
    JNE CHKPA0

    POP AX
    POP DX
    RET
DELAY ENDP

MYRECORD PROC NEAR

    PUSH DI
    PUSH CX
    PUSH DX
    PUSH AX

    MOV DI,OFFSET DAT
    MOV CX,60000

AD: MOV DX,ioport5
    OUT DX,AL
    CALL DELAY
    IN AL,DX
    MOV [DI],AL
    INC DI
    LOOP AD

    POP AX
    POP DX
    POP CX
    POP DI
    RET
MYRECORD ENDP

PLAY PROC NEAR

    PUSH SI
    PUSH CX
    PUSH DX
    PUSH AX

    MOV SI,OFFSET DAT
    MOV CX,60000
    MOV DX,ioport6

DA: MOV AL,[SI]
    OUT DX,AL
    INC SI
    CALL DELAY
    LOOP DA

    POP AX
    POP DX
    POP CX
    POP SI
    RET
PLAY ENDP

CODE ENDS
END STT

⌨️ 快捷键说明

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