You are not logged in.
Pages: 1
Здравствуйте, кто может подсказать как эту функцию, правильно переписывать в C++ ?
.text:00642920 ; float __usercall MakeAngleAccute<st0>(float val<st0>) .text:00642920 MakeAngleAccute proc near ; CODE XREF: sub_401FB0+1D2p .text:00642920 ; sub_402550+133p .text:00642920 ; sub_41D410+2BEp .text:00642920 ; sub_41D410+2E4p ... .text:00642920 000 D9 EB fldpi .text:00642922 000 D9 C9 fxch st(1) .text:00642924 .text:00642924 loc_642924: ; CODE XREF: MakeAngleAccute+14j .text:00642924 000 D9 05 A0 D4 6D 00 fld fHalf_1 .text:0064292A 000 DE C9 fmulp st(1), st .text:0064292C 000 D9 F8 fprem .text:0064292E 000 DF E0 fnstsw ax .text:00642930 000 66 A9 00 04 test ax, 400h .text:00642934 000 75 EE jnz short loc_642924 .text:00642936 000 DD D9 fstp st(1) .text:00642938 000 C3 retn .text:00642938 MakeAngleAccute endp
Offline
Напрямую - никак. Над ней очень сильно поработал оптимизатор.
сама по себе функция очень простая:
float makeAngleAccute (float fAngle) { return fmodf (fAnfle, M_PI_2); }
Но, поскольку параметр передается в ST, без ассемблерной вставки, ее переопределить нельзя.
Offline
Спасибо, теперь я все понял и за чего такой вид образовался у функции.
Но, поскольку параметр передается в ST, без ассемблерной вставки, ее переопределить нельзя.
Да уж. Но если уже переписывать MakeAngleAccute, тогда обязательно придется переписывать и те функции, где она вызывалась.
Last edited by VintProg_Pro (17-08-2013 17:08)
Offline
Pages: 1