Why doesn't FASM want to take a tword as an argument of FST command? :confused: I thought FPU works mainly (if not only) with this datatype. How should I save a 80-bit value to memory?
Can anyone also provide me with some examples of using FPU?
Posted on 2002-09-29 04:27:41 by longer
The FPU works with that data types internally, and its only recommended that you uses them if the small bit of extra precision they provide is absolutly necessary. This is because they are much slower.

If you do still need to use them however the you should be aware that the only two instructions which accept them as operands are fld & fstp :)

As for examples, check out Amr's nice Math program
Posted on 2002-09-29 05:06:47 by Eóin

If you do still need to use them however the you should be aware that the only two instructions which accept them as operands are fld & fstp :)
Additionally, FXSAVE/FXRSTOR & FSAVE/FNSAVE/FRSTOR also use 80-bit FPU numbers.
Posted on 2002-09-29 12:04:24 by bitRAKE
My appologies

:stupid:
Posted on 2002-09-29 12:39:03 by Eóin
E?in, do you think it might be faster for some routine to use FXRSTOR instead of several FLD or MOVQ reg? It would take more memory, but I was surprised by how fast this instruction is on an Athlon.
Posted on 2002-09-29 13:27:33 by bitRAKE
Thanks a lot both of you!
And one more question:
Are there any online resources that contain complete documentation on FPU instructions (including operand sizes)?
Posted on 2002-09-30 11:39:15 by longer
Hi longer,
search this board, there is a very nice tutorial by The Svine.
ANd the complete docs, in http://developer.intel.com
Posted on 2002-10-02 10:01:46 by slop
Hi sloppy,
thanks for your help!
Posted on 2002-10-03 00:24:56 by longer
bitRAKE, I've been in college all week and didn't get a chance to reply.

Unfortunatly I don't quite follow what you mean. Are you suggesting it as a method of quickly freeing up the registers, it sounds very interesting.
Posted on 2002-10-04 12:56:06 by Eóin
Yeah, I was suggesting using it like the MOVEM instruction on the 680x0 CPU - to load/store all the registers very quickly at high perscision. The OS does it all the time during task switches - hence the reason for AMD speeding it up. :) Haven't done any testing - just a thought.
Posted on 2002-10-04 19:15:11 by bitRAKE