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

📄 shuiziluyinji.txt

📁 用汇编语言写的实现数字录音机功能 有要的话拿去吧
💻 TXT
字号:
         






PRINTF   MACRO XX                     ;DOS调用并输出字符串  
         LEA DX,XX
         MOV AH,9
         INT 21H
         ENDM

DATA SEGMENT
   BUF DB 60000 DUP(?)
   STR1 DB 'ENTER ANY KEY TO BEGIN RECORD!',0AH,0DH,'$'
   STR2 DB 'ENTER ANY KEY TO PLAY,ENTER,SPACE TO EXIT!',0AH,0DH,'$'
   STR3 DB 'RECORDING ...',0AH,0DH,'$'
   STR4 DB 'PLAYING ...',0AH,0DH,'$'
DATA ENDS

CODE SEGMENT
   ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
      MOV DS,AX
      PRINTF STR1            ;output string-1显示字符串1
      MOV AH,1               ;DOS-1,input a char
      INT 21H
      CALL RE_CORD           ;star reconding开始录音
LOP2: PRINTF STR2            ;output string-2 显示字符串2                   
      MOV AH,7               ;DOS-7,get a char and not display it接受一个字符但是不显示
      INT 21H
      CMP AL,20H             ;the char is 'space'? 判断是否是空格
      JZ EXIT                ;yes,return to DOS    如果是则返回Dos
      CALL PLAY              ;调用Play
      JMP LOP2
EXIT: MOV AH,4CH              ;返回DOS
      INT 21H

DELAY:PUSH AX
      PUSH DX
      MOV DX,0C403H           ;初始化定时器模式
      MOV AL,10H
      OUT DX,AL
      MOV DX,0C400H           ;初始化定时器初值
      MOV AL,200
      OUT DX,AL
      MOV DX,0C40BH
      MOV AL,90H
      OUT DX,AL
      MOV DX,0C408H
LOP3: IN AL,DX                ; 等待中断并用查询方式读入
      AND AL,1  
      JZ LOP3
      POP DX
      POP AX
      RET

RE_CORD:PRINTF STR3            ;录音
       LEA DI,BUF
       MOV CX,60000
LOP4:  MOV DX,0C41AH           ;启动采样    
       OUT DX,AL
       CALL DELAY
       IN AL,DX                ;读进采样数
       MOV [DI],AL
       INC DI
       LOOP LOP4
       RET
PLAY: PRINTF STR4             ;放音
      LEA SI,BUF
      MOV CX,60000
      MOV DX,0C410H
LOP5: MOV AL,[SI]             ;把数据放到0832端口并放出来
      OUT DX,AL
      INC SI
      CALL DELAY
      LOOP LOP5
      RET
   CODE ENDS
      END START

⌨️ 快捷键说明

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