Addys in CShell

Posts 1–5 of 5 · Page 1 of 1
Addys in CShell
Hi MPGH I have a Question


Are all addys in CShell float or Not?
Thanks
Lol in CShell are strings, ints, floats, ...

Tell us which Addy do you mean
Quote Originally Posted by derh.acker View Post
Lol in CShell are strings, ints, floats, ...

Tell us which Addy do you mean
Or Dword,

Btw, float = FSTP
DWORD = "MOV ECX,DWORD PTR DS:[addie]" ?
but how does a int pointer look like?
what is dword and Push i mean float byte double.....
in CShell
You can btw google this stuff:

Code:
14.4.4.2 The FST and FSTP Instructions

The fst and fstp instructions copy the value on the top of the floating point register stack to another floating point register or to a 32, 64, or 80 bit memory variable. When copying data to a 32 or 64 bit memory variable, the 80 bit extended precision value on the top of stack is rounded to the smaller format as specified by the rounding control bits in the FPU control register.

The fstp instruction pops the value off the top of stack when moving it to the destination location. It does this by incrementing the top of stack pointer in the status register after accessing the data in st(0). If the destination operand is a floating point register, the FPU stores the value at the specified register number before popping the data off the top of the stack.

Executing an fstp st(0) instruction effectively pops the data off the top of stack with no data transfer. Examples:




                fst     mem_32
                fstp    mem_64
                fstp    mem_64[ebx*8]
                fst     mem_80
                fst     st(2)
                fstp    st(1)
The last example above effectively pops st(1) while leaving st(0) on the top of the stack.

The fst and fstp instructions will set the stack exception bit if a stack underflow occurs (attempting to store a value from an empty register stack). They will set the precision bit if there is a loss of precision during the store operation (this will occur, for example, when storing an 80 bit extended precision value into a 32 or 64 bit memory variable and there are some bits lost during conversion). They will set the underflow exception bit when storing an 80 bit value value into a 32 or 64 bit memory variable, but the value is too small to fit into the destination operand. Likewise, these instructions will set the overflow exception bit if the value on the top of stack is too big to fit into a 32 or 64 bit memory variable. The fst and fstp instructions set the denormalized flag when you try to store a denormalized value into an 80 bit register or variable[7]. They set the invalid operation flag if an invalid operation (such as storing into an empty register) occurs. Finally, these instructions set the C1 condition bit if rounding occurs during the store operation (this only occurs when storing into a 32 or 64 bit memory variable and you have to round the mantissa to fit into the destination).
I have to go now, sorry.
Posts 1–5 of 5 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?