flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
vid 03 Mar 2008, 00:15
good catch
![]() |
|||
![]() |
|
Tomasz Grysztar 15 Nov 2008, 15:46
What are the exact value ranges that should be disallowed? I'm too lazy to check it myself.
![]() |
|||
![]() |
|
revolution 19 Nov 2008, 14:25
Tomasz Grysztar wrote: What are the exact value ranges that should be disallowed? I'm too lazy to check it myself. For large numbers: If the exponent goes to all 1's then you have either an infinity or a NaN, so in those cases the assembler should ideally say number out of range. For tiny numbers: If the exponent goes to all 0's then you have either a zero or a denormal. Denormals are not left justified and are stored with one extra shift to keep the MSb in the mantissa. When the mantissa is all 0's then the number is either + or - zero. If the mantissa does go to zero from a non zero decimal input then ideally the assembler should say number out of range. |
|||
![]() |
|
bitRAKE 19 Nov 2008, 16:59
Does this also effect the dword floats?
|
|||
![]() |
|
revolution 19 Nov 2008, 19:46
bitRAKE wrote: Does this also effect the dword floats? |
|||
![]() |
|
vid 19 Nov 2008, 22:20
bitRAKE: FASM first converts to internal 3*32 bit mantissa, 32bit exponent (just like FASMLIB does, wonder why...), and then "downconverts" to desired format. So yeah, it definitively can cause problems with those too, but you have to be really "lucky" to hit it. But still I think this catch deserves Nobel prize for 2008 computing, really a great catch.
|
|||
![]() |
|
Tomasz Grysztar 11 Feb 2009, 22:42
It's finally fixed in 1.67.31 (I think).
|
|||
![]() |
|
revolution 12 Feb 2009, 03:22
Erm
![]() Code: dq 5e-324 ;2.147483647526668e-314 9C 2B 13 03 01 00 00 00 |
|||
![]() |
|
Tomasz Grysztar 12 Feb 2009, 07:35
Corrected.
|
|||
![]() |
|
revolution 12 Feb 2009, 08:16
The rounding is not working for denormals. Maybe not important:
Code: dq 9.89e-324 ;9.88e-324 02 00 00 00 00 00 00 00 dq 9.88e-324 ;4.94e-324 01 00 00 00 00 00 00 00 |
|||
![]() |
|
Tomasz Grysztar 12 Feb 2009, 08:27
You're right, I didn't care to round them. Perhaps I will make it in a spare time.
|
|||
![]() |
|
Tomasz Grysztar 12 Feb 2009, 09:41
Well, got some spare minutes right now.
![]() Can you check how much I broke it this time? ![]() |
|||
![]() |
|
revolution 12 Feb 2009, 10:49
You get one star:
* Congrats. |
|||
![]() |
|
Madis731 13 Feb 2009, 11:16
What does one star mean? Is it partly fixed or is a * a REALLY good thing ^o)
|
|||
![]() |
|
revolution 13 Feb 2009, 11:26
Stars are VERY VERY hard to get. They don't come freely. If someone gets a star you can be sure it is for hard work and diligence above and beyond the normal requirement. So in this case, one star means "a REALLY good thing".
|
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.