Article View: pl.comp.lang.asm
Article #2524Re: koprocesor reszta z dzielenia fprem
From: Bogdan (bogdro)
Date: Tue, 17 Jan 2012 19:40
Date: Tue, 17 Jan 2012 19:40
63 lines
2864 bytes
2864 bytes
W dniu 17.01.2012 20:19, panki pisze: > mogl by mi ktos podpowiedziec jak uzywac funkcji fprem. > probowalem to w ten sposob ale nie chce dzialac > > [code] > ; proba coprocesora > > section .text > > global _start > > extern koniec > extern piszeaxld > > _start: > > finit > > fld qword [a] ;ladule wartosc > fld qword [b] ;laduje dzielnik > petla: > fprem ;reszta > fstsw ax; zapisuje status reszty > sahf; stan do flag; > jnz petla; > fstp tword [reszta] > > mov eax, reszta > call piszeaxld > > call koniec > > section .data > a dq 5 > b dq 8 > reszta dt 0.0; > > [/code] Po pierwsze, co nie chce działać? Nie kompiluje się? Kompiluje się, ale nie uruchamia się lub powoduje zamknięcie programu? Uruchamia się, ale podaje nieoczekiwany wynik? Powiedz jeszcze, co dokładnie robi procedura piszeaxld? Bo na tę chwilę zgaduję, że wypisuje liczbę całkowitą spod adresu podanego w EAX. Jeśli to prawda, to widzę z tym jeden problem: poprzez FSTP zapisujesz resztę z dzielenia, ale zmiennoprzecinkową, która po wyświetleniu jako liczba całkowita może nie wyglądać tak, jak tego można oczekiwać. Ale to raczej ten mniejszy problem. Co ważniejsze, to to, że FPREM przyjmuje 2 parametry na stosie FPU. W pierwszej iteracji pętli jak najbardziej jeszcze tam są, ale od drugiej na stosie jest już tylko jeden. Jako drugi brane jest cokolwiek, co akurat było na stosie. To zapewne jest niepożądane. P.S. Ja się nie czepiam, ale formalnie FPREM jest instrukcją procesora, a nie funkcją (funkcje zwykle pisze się we własnych programach). -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.Xiph.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID:
<jf4is4$7ug$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<31dcb0a3-c0f2-4919-9e43-1469f887e7c7@e27g2000vbu.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> Newsgroups: pl.comp.lang.asm Subject: Re: koprocesor reszta z dzielenia fprem Date: Tue, 17 Jan 2012 20:40:51 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 63 Message-ID: <jf4is4$7ug$1@inews.gazeta.pl> References: <31dcb0a3-c0f2-4919-9e43-1469f887e7c7@e27g2000vbu.googlegroups.com> NNTP-Posting-Host: rudy.mif.pg.gda.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1326829253 8144 153.19.42.16 (17 Jan 2012 19:40:53 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Tue, 17 Jan 2012 19:40:53 +0000 (UTC) X-User: bog.d In-Reply-To: <31dcb0a3-c0f2-4919-9e43-1469f887e7c7@e27g2000vbu.googlegroups.com> User-Agent: Mozilla/5.0 (X11; Linux i686; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit