1

このアセンブラ プログラムを使用して、「音楽」またはそれ以上の小さな「ビープ音」を出力したいと考えています。

play.s:

datei:
.ascii "/dev/dsp"

.globl play
play:
movl $5, %eax
movl $datei, %ebx
movl $1, %ecx
int $0x80
pushl %eax
movl %eax, %ebx
movl $4, %eax
movl 12(%esp), %ecx
movl 8(%esp), %edx
int $0x80

音楽:

.globl _start
#.lcomm buffer, 100
buffer:
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
.byte 0,255,0,255,0,255,0,255,0,255
_start:
pushl $buffer
pushl $100
loop:
call play
jmp loop
movl $1, %eax
movl $0, %ebx
int $128

私は両方を組み立てました:

as music.s -o music.o as play.s -o play.o

そして両方をリンクしました:

ld play.o music.o -o music

しかし、「/dev/dsp」ファイルがないことを登録しました。pulseaudio の /dev/dsp に似たものはありますか?

4

1 に答える 1

3

レガシー/dev/dspインターフェイスは、デフォルトでは有効になっていません。

エミュレートするには、padp (PulseAudio に含まれています) またはosspdを試してください。

または、サンプル データを stdout に出力し、パイプでパイプしaplayます。

于 2014-04-11T07:47:17.973 に答える