千家信息网

汇编语言如何实现发出各种声音

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"汇编语言如何实现发出各种声音",在日常操作中,相信很多人在汇编语言如何实现发出各种声音问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"汇编语言如何实现发
千家信息网最后更新 2026年11月04日汇编语言如何实现发出各种声音

这篇文章主要介绍"汇编语言如何实现发出各种声音",在日常操作中,相信很多人在汇编语言如何实现发出各种声音问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"汇编语言如何实现发出各种声音"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

9.响铃设计

9.1设计要求:

要求掌握响铃的使用方法。设计程序,从键盘接收输入字符,如是数字N,则响铃N次,如输入为非数字,则不响铃。

9.2设计思路:

判断输入为0~9之间,将N值给BP,设置响铃延时次数CX输出N次响铃。

9.3程序清单:

DATA    SEGMENT        pkey   DB  0AH,0DH,'please input the N:','$'        ERR   DB  0AH,0DH,'eero!',0AH,0DH,'please input the N again:','$'DATA    ENDS  CODE    SEGMENT        ASSUME  CS:CODE,DS:DATASTATE:  MOV AX,DATA        MOV DS,AX        MOV ES,AX                 LEA DX,pkey        MOV AH,09H        INT 21H                 ;DOS功能调用,输出字符串INPUT:  MOV AH,01H        INT 21H        CMP AL,'9'        JA  eero        CMP AL,'0'        JB  eero        SUB AL,30H              ;输入为0~9,则AL为响铃次数        SUB AH,AH        MOV BP,AX               ;BP为响铃次数N        xiang:   MOV CX,4                ;CX为响铃延时时间        MOV AH,02H                      MOV DL,07H        INT 21H                 ;DOS功能调用,响铃 LP:     LOOP LP                 ;响铃延时        DEC BP          JNZ xiang               ;响铃N次        JMP STATE                                eero:    LEA DX,ERR        MOV AH,9        INT 21H                 ;输出错误字符串        JMP INPUTCODE   ENDSEND  STATE

9.4程序运行结果及分析:

设置CX次数为延时次数,BP次数为响铃次数,调用响铃功能通过延时实现响铃,起初会把延时次数和响铃次数混淆导致错误。

图9 响铃设计结果

10.需要外接扬声器的发声程序

10.1机枪声音

PROGRAM SEGMENT      MAIN PROC FAR        ASSUME CS:PROGRAM                ORG 100HSTRAT:MOV CX,20DNEW_SHOT:PUSH CX         CALL SHOOT         MOV CX,4000H          SILENT:LOOP SILENT       POP CX       LOOP NEW_SHOT       INT 20H        MAIN ENDP    SHOOT PROC NEAR            MOV DX,140H      MOV BX,20H      IN  AL,61H      AND AL,11111100B       SOUND:XOR AL,2      OUT 61H,AL      ADD DX,9248H      MOV CL,3      ROR DX,CL      MOV CX,DX      AND CX,1FFH      OR CX,10          WAIT: LOOP WAIT        DEC BX       JNZ SOUND       AND AL,11111100B       OUT 61H,AL       RET             SHOOT ENDP   PROGRAM ENDS END STRAT

10.2音乐播放

;定义数据段data segment     infor1 db 0Dh, 0AH, "welocom you to come here listeng! $"     mus_freg  dw 330,294,262,294,3 dup (330)     ;频率表               dw 3 dup (294),330,392,392               dw 330,294,262,294,4 dup (330)               dw 294,294,330,294,262,-1     mus_time  dw 6 dup (25),50                   ;节拍表               dw 2 dup (25,25,50)               dw 12 dup (25),100data ends;栈段定义stack segment stack      db 200 dup(?)stack ends;--------字符串输出宏----------SHOWBM MACRO b     LEA DX,b     MOV AH,9     INT 21H ENDM;----------音乐地址宏-----------ADDRESS MACRO A,B     LEA SI,A     LEA BP,DS:BENDM;代码段定义code segment     assume ds:data, ss:stack, cs:codestart:     mov ax, data     mov ds, ax     mov ax, stack     mov ss, ax     mov sp, 200        address mus_freg, mus_time     call musicexit:          mov ah, 4cH     int 21h;------------发声-------------gensound proc near     push ax     push bx     push cx     push dx     push di     mov al, 0b6H     out 43h, al     mov dx, 12     mov ax, 348ch     div di     out 42h, al     mov al, ah     out 42h, al      in al, 61h     mov ah, al     or al, 3     out 61h, alwait1:     mov cx, 3314     call waitfdelay1:     dec bx     jnz wait1     mov al, ah     out 61h, al     pop di     pop dx     pop cx     pop bx     pop ax     ret gensound endp;--------------------------waitf proc near      push axwaitf1:      in al,61h      and al,10h      cmp al,ah      je waitf1      mov ah,al      loop waitf1      pop ax      retwaitf endp;--------------发声调用函数----------------music proc near      xor ax, axfreg:      mov di, [si]      cmp di, 0FFFFH      je end_mus      mov bx, ds:[bp]      call gensound      add si, 2      add bp, 2      jmp fregend_mus:      retmusic endpcode ends     end start

到此,关于"汇编语言如何实现发出各种声音"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

响铃 次数 声音 设计 汇编语言 语言 字符 程序 学习 输入 输出 功能 字符串 数字 方法 更多 结果 错误 音乐 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 广州百单互联网科技有限公司 科技互联网公司装修 互联网核心科技是什么 网络科技有限互联网 互联网科技金融 世界互联网领先科技成果 猫创互联网科技 成都仁贤领冠互联网科技有限公司 哈尔滨秒房互联网科技有限公司 互联网科技公司招聘 华中科技有哪些互联网大佬 中化能源互联网科技招聘 呼和浩特新华互联网科技学院 米聚互联网科技南京有限公司排面 互联网科技快讯热点 普陀区互联网教育科技管理办法 上海万顺科技互联网有限公司招聘 上海旺乐尼互联网科技有限公司 中国主要互联网科技公司 互联网金融 科技 互联网 科技创新 万易互联网科技 撒么互联网科技公司 字节跳动和互联网科技 互联网经济与金融科技 互联网科技与管理 皮皮虾互联网科技有限公司 互联网科技包装股份有限公司上市 互联网公司属于科技吗
0