🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #312

Zmiennoprzecinkowe - konwersja Temporary Real (80bity) na Long Real (64bity)

#312
From: Jareq
Date: Mon, 05 Jun 2006 12:49
32 lines
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-mail

Show 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