flat assembler
Message board for the users of flat assembler.
Index
> Main > OllyDBG under wine, strtod, Inexact floating-point result |
Author |
|
JohnFound 08 Nov 2015, 10:52
I am using OllyDbg 1.10 and it works fine in Linux with the above example.
|
|||
08 Nov 2015, 10:52 |
|
revolution 08 Nov 2015, 11:58
You can disable the inexact exception with the control register. By default it should be disabled anyway. Try putting FINIT in your code before you do anything with the FPU.
|
|||
08 Nov 2015, 11:58 |
|
borbonhause 08 Nov 2015, 16:12
JohnFound wrote: I am using OllyDbg 1.10 and it works fine in Linux with the above example. I used version 2.01, and problem is solved after moving to 1.10. Thank you. revolution wrote: You can disable the inexact exception with the control register. By default it should be disabled anyway. Try putting FINIT in your code before you do anything with the FPU. This fixes even for 2.01, but with some quirks. It works if I just press run, but if I execute command by command, FINIT command is ignored, and FST and FCW registers stay at 0000. Yes, and program starts with FST==0000 in OllyDBG 2.01 for some weird reason. Not sure if this is Olly bug of Wine bug, my Wine is at least year old. Yes, and exceptions can also happen even inside MessageBoxA, deep deep inside. Thank you for telling about this command, now I have more hints about how FPU exceptions work. BTW, maybe anyone knows what those things under FPU registers mean? Words like "Cond", "Err", "Prec", "Mask", "Last cmnd", "E S P U O Z D I"? _________________ If you found bad grammar in my post, please PM me about it. |
|||
08 Nov 2015, 16:12 |
|
revolution 08 Nov 2015, 21:35
borbonhause: Perhaps you would like to read the Intel or AMD docs to learn about the FPU internal status registers. It would take too long to explain here in a forum post. But in brief those are indicating various internal events that occur in the FPU.
|
|||
08 Nov 2015, 21:35 |
|
borbonhause 09 Nov 2015, 06:50
I did read this instead: http://www.ray.masmcode.com/tutorial/fpuchap1.htm . But it uses a bit different abbriviations for everything. For example, it explains what P U O Z D I is, but E S is using different abbriviation in that page. 4bit "Cond" field is unexplained too, biggest field in Status Word Register is 3bit long. This "(GT)" to the right of "Err" is a mistery too.
I have read the OllyDBG manual for 2.01 yesterday, but didn't managed to find the meaning of these. |
|||
09 Nov 2015, 06:50 |
|
borbonhause 09 Nov 2015, 07:03
Maybe I should create a new thread instead of that "BTW"...
|
|||
09 Nov 2015, 07:03 |
|
revolution 09 Nov 2015, 07:12
borbonhause: I suggest you go to the source: Either the Intel for AMD docs. Other webpages can be mistaken, use different terminology and/or omit things (as you have found out).
|
|||
09 Nov 2015, 07:12 |
|
borbonhause 09 Nov 2015, 10:07
Redirecting to a 5000 pages long docs, that's pretty nice of you... Yeah, sure, I'll go there.
|
|||
09 Nov 2015, 10:07 |
|
revolution 09 Nov 2015, 11:05
The FPU is a complex unit. It needs a lot of explanation. And not all 5000 pages are about the FPU. Just a section or two is enough to find the descriptions of all the various registers and status bits that the FPU has.
|
|||
09 Nov 2015, 11:05 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.