我正在编写一个多模块应用程序(c ++和汇编)。我想使用__cdcel:
创建一个非整数变量的函数(例如float)extern "C" float __cdecl foo(float* arr, float a, float b );
我应该写什么来在汇编代码中使用这些变量
.586
PUBLIC _foo
.model flat
.code
_foo proc
;...
;I want to use my arr, a and b here
;...
ret
_foo endp
end
对我而言,如果我的变量是整数,我会使用ebp,但在我的情况下我有浮点数,所以我应该写什么? 我使用的是英特尔x86 ASM
答案 0 :(得分:-2)
您将在XMM0,1,2和3中将三个浮点数传递给ASM。在使用C ++调用函数之前设置一个断点,然后使用F11进入ASM并检查已传递值的寄存器。
参见Calling Conventions 看看Compiling 64-bit Assembler Code in Visual Studio