qq_53263953 2023-02-21 15:28 采纳率: 100%
浏览 33
已结题

汇编语言扬声器实验不出声音

下面的代码是我按照课本给的控制扬声器发声程序写的代码,运行没有报错,但是扬声器一直没有声音。win7系统,masm2011

DATAS SEGMENT
fre dw 1000h
;此处输入数据段代码
DATAS ENDS

STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
mov ax,fre
call speaker
call speakon
mov ah,1
int 21h
call speakoff

speaker proc
push ax
mov al,0b6h
out 43h,al
pop ax
out 42h,al
mov al,ah
out 42h,al
ret
speaker endp

speakon proc
push ax
in al,61h
or al,03h
out 61h,al
pop ax
ret
speakon endp

speakoff proc
push ax
in al,61h
and al,0fch
out 61h,al
pop ax
ret
speakoff endp

MOV AH,4CH
INT 21H

CODES ENDS
END START

  • 写回答

4条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-21 15:36
    关注

    基于Monster 组和GPT的调写:
    程序的主要功能是控制扬声器发声,但没有提供实际的音频数据来产生声音。因此,即使程序没有报错,扬声器也不会有声音。

    要在程序中添加音频数据,要使用一个合适的音频格式并将其放入数据段中,然后通过一些代码来产生声音。具体实现方法会根据使用的音频格式而有所不同。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月21日
  • 已采纳回答 2月21日
  • 创建了问题 2月21日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?