🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#1919
From: MrokU
Date: Mon, 25 May 2009 20:34
45 lines
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-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>

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