🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Visual Studio 2008 (C++ oraz DLL w asmie) Interpolacja

#1920
From: Bogdan (bogdro)
Date: Tue, 26 May 2009 16:52
50 lines
3550 bytes
MrokU pisze:
>>  Możesz nie pisać PUSHAD i POPAD, bo używasz tylko rejestru EAX, który
>> nie tylko można dowolnie zmieniać, ale przy wyjściu zawiera wynik.
> 
> No właśnie muszę używać, bo Visual mi się pluje, że coś robię nie tak
> z rejestrem ESI. Nie wiem o co chodzi, ale jak te instrukcje dodam, to
> żadnych błędów mi nie wyrzuca...

 Aha. No skoro tak, to nie ruszaj. Bo właśnie EBX, EBP, ESI i EDI nie
wolno ruszać (chyba że zachowa się i przywróci poprzednią wartość).

>>  Swoją drogą, chyba "wynik" jest od tego, by otrzymać wynik, a nie "kat"?
> 
> o FINIT nie wiedziałem. Jak na razie to jedyna funkcja, która używa
> liczb zmiennoprzecinkowych, ale domyślnie będzie to działało tak, że
> jedna duża funkcja będzie liczyła interpolację dla danego punktu, w
> związku z tym FINIT będzie tylko raz (aczkolwiek to na razie plany).
> Wynik jest do tego, żeby sobie spróbować zwrócić wynik w inny sposób
> niż przez eax, ale jak na razie tego nie robiłem, bo nie do końca wiem
> jak :P chociaż pewnie trzeba przekazać wskaźnik i modyfikować adres.
> Tylko nie zastanawiałem się jeszcze jak to robić.

 Jeśli "wynik" to adres zmiennej, to ładujesz go do rejestru, np. EAX,
po czym wynik z FPU ładujesz do [EAX].

>> #include <math.h>
>> #ifndef M_PI
>> #define M_PI 3.141592653589793238462643383279502884197 blablabla...
>> #endif
> 
> nie widziałem sensu dołączania całej biblioteki, skoro potrzebuję
> tylko PI (chociaż jak już mówiłem, to są dopiero próby i przymierzanie
> się do pisania programu).

 To nie jest dołączanie biblioteki w sensie binarnym (chyba że
środowisko/linker jest naprawdę tępy). To jest dołączanie pliku
nagłówkowego, a biblioteka fizycznie powinna zostać dołączona do
programu tylko jak są wywoływane z niej jakiekolwiek funkcje.

> No a z liczeniem sinusa 30 stopni, to nie ma sensu robić to z #define,
> bo nie będę liczył stałych wartości kątów. Wszystko leci na wzorach i
> będzie wyliczane na bieżąco.

 OK, to była tylko porada w razie czego.

-- 
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.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID: <gvh6o8$m47$2@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <29a4a4e4-9913-4afa-ba78-63b3168b1c91@r34g2000vbi.googlegroups.com> <gvb3au$aha$1@inews.gazeta.pl> <gvcsv7$9li$1@inews.gazeta.pl> <1c78221a-e9ea-4795-ac7b-2b3d014f556b@r33g2000yqn.googlegroups.com> <gvefkf$lke$1@inews.gazeta.pl> <4d803707-1805-451c-831a-9a6ba4c855b5@37g2000yqp.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: Visual Studio 2008 (C++ oraz DLL w asmie) Interpolacja
Date: Tue, 26 May 2009 18:52:22 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 50
Message-ID: <gvh6o8$m47$2@inews.gazeta.pl>
References: <29a4a4e4-9913-4afa-ba78-63b3168b1c91@r34g2000vbi.googlegroups.com>  <gvb3au$aha$1@inews.gazeta.pl> <gvcsv7$9li$1@inews.gazeta.pl>  <1c78221a-e9ea-4795-ac7b-2b3d014f556b@r33g2000yqn.googlegroups.com>  <gvefkf$lke$1@inews.gazeta.pl> <4d803707-1805-451c-831a-9a6ba4c855b5@37g2000yqp.googlegroups.com>
NNTP-Posting-Host: anon.xmission.com
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1243356748 22663 166.70.207.2 (26 May 2009 16:52:28 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Tue, 26 May 2009 16:52:28 +0000 (UTC)
X-User: bog.d
In-Reply-To: <4d803707-1805-451c-831a-9a6ba4c855b5@37g2000yqp.googlegroups.com>
User-Agent: Thunderbird 2.0.0.21 (X11/20090302)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit