🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: koprocesor reszta z dzielenia fprem

#2524
From: Bogdan (bogdro)
Date: Tue, 17 Jan 2012 19:40
63 lines
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-mail
References: <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