我必須寫在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上略有不同。 –
窗戶,我忘了注意這一點。 –