我必须在 asm 中编写函数,并且我在 C 中有原型
void fdct(float *in, float *out, unsigned int n);
在哪里:
in
: 指向传入数据缓冲区的指针out
: 指向输出数据缓冲区的指针n
:数据矩阵的数量。
函数不返回任何内容,但适用于输出数据数组,并且必须根据结果进行更改。
据我了解,在 cdecl 堆栈中将如下所示:
esp: ret
esp+4: *in - address
esp+8: *out - address
esp+12: value of n
我知道了,如何在 asm 中使用传入缓冲区,但我不明白如何返回传出缓冲区的新地址 - 只是将新地址放入esp+8
不会产生结果,它不会改变*out
. 我该如何处理这个问题?