Article View: pl.comp.lang.asm
Article #1919Re: Visual Studio 2008 (C++ oraz DLL w asmie) Interpolacja
From: MrokU
Date: Mon, 25 May 2009 20:34
Date: Mon, 25 May 2009 20:34
45 lines
3693 bytes
3693 bytes
> 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... > Oj, tu niedobrze. Pomijając PUSHAD/POPAD, wykonywanie FINIT może być > dość kosztowne czasowo i raczej powinno się to robić tylko raz, przy > starcie programu (chyba że naprawdę potrzebny jest reset). Większy > problem jest w tym, że wkładasz coś na stos i nie zdejmujesz - po 8 > uruchomieniach się przepełni (pewnie dlatego robiłeś FINIT). Zamiast > FST użyj FSTP. Nawet jeśli nigdzie indziej nie używasz koprocesora, > rób tak dla zasady. > 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ć. > > #include <windows.h> > > #include <stdio.h> > > #include <iostream> > > #define PI > > 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 > > Czemu nie użyjesz stałych "firmowych" (jeśli są dostępne, oczywiście)? > > #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). 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.
Technical Details
Message-ID:
<4d803707-1805-451c-831a-9a6ba4c855b5@37g2000yqp.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!37g2000yqp.googlegroups.com!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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!37g2000yqp.googlegroups.com!not-for-mail From: MrokU <arkosmc@gmail.com> Newsgroups: pl.comp.lang.asm Subject: Re: Visual Studio 2008 (C++ oraz DLL w asmie) Interpolacja Date: Mon, 25 May 2009 13:34:54 -0700 (PDT) Organization: http://groups.google.com Lines: 60 Message-ID: <4d803707-1805-451c-831a-9a6ba4c855b5@37g2000yqp.googlegroups.com> 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> NNTP-Posting-Host: 83.230.1.175 Mime-Version: 1.0 X-Trace: posting.google.com 1243283694 9648 127.0.0.1 (25 May 2009 20:34:54 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 25 May 2009 20:34:54 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: 37g2000yqp.googlegroups.com; posting-host=83.230.1.175; posting-account=M89B8goAAADtNGu6YLcVvvVDLG2z3LY8 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729),gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit