Article View: comp.sys.intel
Article #892387 exceptions - when are they raised?
From: Gerd Kortemeyer
Date: Fri, 06 Nov 1992 09:03
Date: Fri, 06 Nov 1992 09:03
42 lines
1586 bytes
1586 bytes
Hi.
In the Intel '387DX Programmer's reference' you will read that
387 exceptions are raised when the NEXT copro-instruction comes. Well,
okay, then this program (written in TP6.0) should work:
asm
fdivp
end;
writeln('Still alive!');
asm
fwait
end;
After being blown up by the emulator it looks like this:
wait
fdivp
call ....
fwait
Now 'fdivp' divides by zero and divide-by-zero is unmasked: Still the
program should (according to the manual) write 'Still alive' onto the
screen and raise the exception when it comes to the fwait (there are
NO copro-instructions inside the WRITELN-subroutine).
Well, it doesn't.
When using the debugger you see the exception is raised right while
executing the fdivp, but this might be a 'Heisenberg effect' (things
change when you measure them ...)
Strange: This program works
fdivp
fnclex
call ...
fwait
Any ideas?
Gerd Kortemeyer
Technical Details
Message-ID:
<1992Nov6.090312.2101@newsserver.rrzn.uni-hannover.de>Path:
arc1-ca.pugleaf.net!sparky!uunet!paladin.american.edu!news.univie.ac.at!hp4at!mcsun!Germany.EU.net!news.netmbx.de!mailgzrz.TU-Berlin.DE!math.fu-berlin.de!Sirius.dfn.de!solaris.rz.tu-clausthal.de!news!alhena.itp.uni-hannover.de!korteShow Full Headers
Complete Article Headers
Newsgroups: comp.sys.intel Path: arc1-ca.pugleaf.net!sparky!uunet!paladin.american.edu!news.univie.ac.at!hp4at!mcsun!Germany.EU.net!news.netmbx.de!mailgzrz.TU-Berlin.DE!math.fu-berlin.de!Sirius.dfn.de!solaris.rz.tu-clausthal.de!news!alhena.itp.uni-hannover.de!korte From: korte@alhena.itp.uni-hannover.de (Gerd Kortemeyer) Subject: 387 exceptions - when are they raised? Message-ID: <1992Nov6.090312.2101@newsserver.rrzn.uni-hannover.de> Keywords: 387, exceptions Sender: news@newsserver.rrzn.uni-hannover.de (News Service) Organization: Institut fuer Theoretische Physik, Uni Hannover Date: Fri, 6 Nov 1992 09:03:12 GMT Lines: 46