MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite
Quote from: RuiLoureiro on May 25, 2012, 07:54:43 PM
I am trying to see why i get Invalid Operation AND the Overflow flag is set
Quote from: MichaelW on May 25, 2012, 04:56:30 AM
This is not very well worked out or tested, and I didn't get to the infinity test, but it's a start.
Quote
So you first get 3^log(2)^-e^+pi = INFINITY which raises the Overflow flag
but not the Invalid Operation flag.
Quote
We compute log(2)^-e^+pi and we get 1162334155587.786
Then, in the next step, when we try to compute 3^1162334155587.786
it raises the Invalid Operation flag
AND the Overflow flag is also set
Quote
However, the next operation would then become 2^INFINITY,
and THAT raises the Invalid Operation flag.
Quote
We have not NEXT OPERATION
Quote
From a strictly math point of view, the actual result of your example is ...
Quote
From a strictly FPU point of view, the actual result of your example ...???
QuoteSee point 2.
You should have a similar outcome as your example with the following example,
but with the Divide-by-Zero flag being raised instead of the Overflow flag:
2^(3/(log(10)-1)) = 2^INFINITY
QuoteI dont like to follow this way, so dont know why.
Olly says the mask bits are all cleared, so in principle it should trigger the exception
QuoteThis document will not describe how interrupts are generated and transmitted nor how to respond to such interrupts.