Article View: pl.comp.lang.asm
Article #1920Re: Visual Studio 2008 (C++ oraz DLL w asmie) Interpolacja
From: Bogdan (bogdro)
Date: Tue, 26 May 2009 16:52
Date: Tue, 26 May 2009 16:52
50 lines
3550 bytes
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-mailReferences:
<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