[求助]为什么同一个函数同样的参数输出来的结果不一样
发表于:
2016-6-10 05:51
5716
[求助]为什么同一个函数同样的参数输出来的结果不一样
TestFuc proc uses ebx esi edi x:dword,y:dword,z:dword
LOCAL RwZb:XYZ
LOCAL var_1c:dword
LOCAL src:qword
LOCAL var_10:dword
LOCAL var_c:dword
LOCAL var_4:dword
LOCAL var:dword
LOCAL var2:dword
LOCAL var4:dword
LOCAL var5:dword
LOCAL var6:dword
mov var,3f3504f4h
mov var2,44800000h
mov var4,4d000000h
mov var5,39800000h
fclex
fild x
fild y
fild z
fstp RwZb.z
fstp RwZb.y
fstp RwZb.x
; mov RwZb.x,45f06a97h
; mov RwZb.y,469fce60h
; mov RwZb.z,471c2ccfh
; invoke ParamFun,x,y,z,addr RwZb
lea esi,RwZb
movq xmm0,[esi]
mov eax,[esi+8h]
movss xmm3,var
movq src,xmm0
movss xmm0,src
mulss xmm0,var2
movss xmm1,[src+4h] ;;
mulss xmm1,var2
movaps xmm2,xmm0
mulss xmm0,xmm3
movaps xmm4,xmm1
mov var_10,eax
mulss xmm4,xmm3
subss xmm0,xmm4
addss xmm0,var4
mulss xmm0,var5
addss xmm2,xmm1
mov eax,1
mulss xmm2,xmm3
mulss xmm2,var5
movss var6,xmm0
movss var_1c,xmm2
;test
cvttss2si ecx,var6 ;ecx的值第一次计算跟第二次计算为什么不一样
cvttss2si eax,var_1c ;eax同上
ret
TestFuc endp
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课