尝试:
finit
fld dword [_x]
fldl2e
fmulp st1,st0 ;st0 = x*log2(e) = tmp1
fld1
fscale ;st0 = 2^int(tmp1), st1=tmp1
fxch
fld1
fxch ;st0 = tmp1, st1=1, st2=2^int(tmp1)
fprem ;st0 = fract(tmp1) = tmp2
f2xm1 ;st0 = 2^(tmp2) - 1 = tmp3
faddp st1,st0 ;st0 = tmp3+1, st1 = 2^int(tmp1)
fmulp st1,st0 ;st0 = 2^int(tmp1) + 2^fract(tmp1) = 2^(x*log2(e))
fstp dword [_result]
ret
我很抱歉没有解释我改变了什么,但这对我来说真的很难理解。