0

こんばんは!

MIDI出力音をシミュレートするMIPSシステムコール31を使ってビープ音を出したいです。$a0 - ピッチ サウンド、$a1 - デュレーションなど、すべてのシステム コール 31 に必要なパラメータを指定しました。しかし、実行後、サウンドは再生されません。何が正しくないか教えてください。また、ocatve でピッチを作成するために 12 を追加しました。これで、サウンドを再生するためにシステム コール 31 が必要とするすべての処理が完了しました。ありがとう!

.text
.globl main

main:   



li $v0,31
la $a0,beep
addi $t2,$a0,12
la $a1,duration

move $t2,$a0
move $t3,$a1

syscall


.data

beep: .byte 72
duration: .byte 100
volume: .byte 127
4

3 に答える 3

1

la(ロードアドレス)とlwロードワードを混同しているようです。la $a0, beep$a0 の後には、ビープ音の内容ではなくアドレスが含まれます。

このエラーを修正するには:

li $v0,31
la $a0,beep
lw $a0 0($a0)
addi $t2,$a0,12
la $a1,duration
lw $a1, 0($a1)

move $t2,$a0
move $t3,$a1

syscall


また、ボリュームを $a3 にロードするのを忘れているようですので、おそらく 0 です。

于 2013-11-03T19:45:17.760 に答える