如何在 Linux 程序集上使用定义的频率制作正弦波

How to make sine wave using defined frequency on Linux Assembly

我尝试在 NASM x86_32 上使用正弦波形式制作音调,我已经这样定义了频率:

C: DW 4560
D: DW 4063
E: DW 3619
F: DW 3416
G: DW 3043
A: DW 2711
B: DW 2415
C.: DW 2280

我是 Linux 程序集的新手,非常感谢所有帮助谢谢:)

公式为:

y(t) = A * sin(2 * PI * f * t + shift)

A 是幅度,f 频率(以 Hz 为单位),t 是时间,shift 是相移)。

数学运算需要什么?

您将需要乘法和正弦。

我会给你一些提示:

对于正弦,您可以使用 FSIN, and for multiplication FMUL。此外,在 x86_32 中,所有参数都在堆栈上传递。 有了这些信息,你应该能够解决你的任务。

正弦波来源: