phill
У меня получилось так:
Код:
x dq 13.45
y dq 1.57
z dq 2.13e2
a4 dd 4.0
a3 dd 3.0
tmp dq ?
finit
fld x
fmul st(0), st(0)
fmul a4
fdiv a3
fstp tmp
fld y
fmul st(0), st(0)
fld tmp
fadd st(0), st(1)
ffree st(1)
fsqrt
fldz ;neg tmp
fsub st(0), st(1)
ffree st(1)
fld z
fcos
fmul st(0), st(0)
fmul st(0), st(0)
fld x
fdiv st(1), st(0)
fstp tmp
fsub st(1), st(0)
fstp tmp
fstp tmp
Можно написать короче. + fadd/sub st(0), st(1); ffree st(1) можно попробовать заменить на faddp/fsubp, только у меня компилятор ругался. А так с виду работает. Результат в [tmp].