1
我需要编写函数,该函数应该使用SSE2将弧度转换为度数。 这是分配。我不知道该怎么做。MASM32函数将两个双精度数字相乘并返回它
_180_PI等于180/3.141592 ...... 我的函数需要刚刚返回return rad * _180_PI
这个函数在DLL数,这是它的声明如何:
__declspec(dllexport) double __stdcall RadToDegAsm(double rad);
我:
.DATA
_180_PI dq 57.2957795130823208767981548141
.CODE
RadToDegAsm PROC rad: QWORD
movupd xmm0, rad
mulsd xmm0, _180_PI
;I need to somehow return it
RadToDegAsm ENDP
主要问题: 如何返回64位(双)x的内容mm0寄存器,以便它与给定的声明一起工作?
您应该使用'movsd'加载参数,并且最后缺少'ret',除非'ENDP'将它放在那里。否则它应该没问题,你遇到了什么问题? – Jester
将C代码构建为64位或32位代码? – Michael
它是x86。而且我没有完成该功能,因为我不知道如何从asm __stdcall函数返回double。正常的32位数字在eax中返回。但双(64位)? – Hooch