我必须写在asm函数,以及i在C原型如何使用asm获取指向输出缓冲区的指针?
void fdct(float *in, float *out, unsigned int n);
其中:
in
:指针输入数据缓冲器out
:指针outcoming数据缓冲器n
:数据矩阵的数量。
函数不会返回任何内容,但会与输出数据的数组一起使用,并且必须根据结果进行更改。
据我了解,在CDECL栈看起来像:
esp: ret
esp+4: *in - address
esp+8: *out - address
esp+12: value of n
我,怎么能和进入缓冲ASM工作,但我不明白如何outcoming缓冲区返回新地址 - 只是将新地址放入esp+8
不是结果,它不会更改*out
的值。我怎样才能解决这个问题?
什么操作系统您使用的?与Windows相比,cdecl调用约定在* nix上略有不同。 –
窗户,我忘了注意这一点。 –