Article View: pl.comp.lang.asm
Article #312Zmiennoprzecinkowe - konwersja Temporary Real (80bity) na Long Real (64bity)
From: Jareq
Date: Mon, 05 Jun 2006 12:49
Date: Mon, 05 Jun 2006 12:49
32 lines
2135 bytes
2135 bytes
Witam, Napisałem program hybrydowy (C + assembler) i po pewnych wyliczeniach otrzymuje liczbe zmiennoprzecinkową na ST(0). Chcę ją przekazać do modułu w C++ do zmiennej typu double. Wszystko generalnie (tylko generalnie) jest ok, ale jesli liczba nie miesci sie na 64 bitach to oczywiscie wystepuje w module C overflow - nie da sie przedstawic liczby na zmiennej double. Postanowilem wiec ze zamienie liczbe ze stosu (czyli zapisana na 80 bitach) na double (czyli 64 bity). Okazuje sie ze nie jest to (dla mnie) takie proste. Czy spotkal sie ktos kiedys z tym problemem? Czy jest jakis sposob zeby najpierw sprawdzic czy taka liczba da sie przedstawic na 64 bitach? Zaznacze, ze chce to zrobic w module asemblerowym (wiec porownywanie do DBL_MAX w module c++ odpada - aczkolwiek jest to jakies rozwiazanie). Najlepiej gdyby w module asemblerowym liczba ze stosu koprocesora byla przenoszona do jakiejs zmiennej QWORD z konwersja (no i jakos zeby dalo sie sprawdzic czy jest to w ogole mozliwe - wtedy ustawie sobie flage, czy zmienna i sprawdze ja w module C++ - jesli bedzie zero to znaczy ze liczba moze byc zapisana do zmiennej tylu double, jesli nie to znaczy ze otrzymalismy za duzy wynik). Mam nadzieje ze nie zakrecilem za bardzo. Z gory dzieki za podpowiedzi. Pozdrawiam, -- Jareq
Technical Details
Message-ID:
<e6198o$2l7$1@node1.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mail From: Jareq <jareq@interia.pl> Newsgroups: pl.comp.lang.asm Subject: Zmiennoprzecinkowe - konwersja Temporary Real (80bity) na Long Real (64bity) Date: Mon, 05 Jun 2006 14:49:28 +0200 Organization: ATMAN Lines: 32 Message-ID: <e6198o$2l7$1@node1.news.atman.pl> NNTP-Posting-Host: systemy10.toya.net.pl Mime-Version: 1.0 X-Trace: node1.news.atman.pl 1149511768 2727 217.113.225.10 (5 Jun 2006 12:49:28 GMT) X-Complaints-To: abuse@atman.pl NNTP-Posting-Date: Mon, 5 Jun 2006 12:49:28 +0000 (UTC) User-Agent: Thunderbird 1.5.0.4 (Windows/20060516) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit