🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#1938
From: Bogdan (bogdro)
Date: Wed, 03 Jun 2009 15:59
40 lines
3120 bytes
MrokU pisze:
> No nic, programik działa, interpoluje (zapewne nieoptymalnie, ale
> cóż...). Kod w ASMie wrzucę, tak dla potomności, oraz może ktoś
> skomentuje i poprawi moje wypociny :)

[...]

> INCLUDE c:\masm32\include\windows.inc;

 Średnik zapewne niepotrzebny :)

 Poza tym, można byłoby pewnie uniknąć ciągłego FINIT i PUSHAD+POPAD.
Zamiast dwóch INC można użyć ADD. Do procedury można przekazać adres
zmiennej od razu, bez używania rejestru, za pomocą "offset twynik" lub
"addr twynik". Można przerobić kod, by nie ładować "t4" na stos FPU 4
instrukcje po zdjęciu tej wartości. Sprawdzenie parzystości liczby:

	mov eax, n  ; zaladowanie n
	shl eax, 31 ; wyluskanie najmlodszego bitu (1 - nieparzysta)
	cmp eax, 0	
	je Parzysta

można zastąpić kodem:

	test n, 1
	je Parzysta

 I mała sztuczka optymalizacyjna: widzę, że ciągle wyliczasz "j*x", a
nie widzę, by "x" się zmieniał w tym czasie. Jeśli dobrze widzę, to
możesz ustawić sobie jakiś rejestr na "x" (bo zaczynamy od 1) i
zwiększać go o "x" za każdą iteracją zamiast ciągle mnożyć.

 To tyle z moich uwag. Najważniejsze, że program działa i problemy
zostały rozwiązane.

-- 
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: <h066l7$5kk$1@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> <1800926.ER7XFjMh0G@meehow.homeip.net> <6a3c09a9-6a40-491a-8d0b-aebe884ddeb9@k38g2000yqh.googlegroups.com> <gvh3mf$a3r$1@inews.gazeta.pl> <0350c547-38dd-4ffd-9348-994f087be99e@21g2000vbk.googlegroups.com> <gvhacl$b4v$1@inews.gazeta.pl> <4cd17bbe-78cb-4b0c-8dcf-d71287d4f307@x3g2000yqa.googlegroups.com> <f5c0cab0-caff-4858-bfad-4106556e0597@r13g2000vbr.googlegroups.com> <gvrei4$l9v$1@inews.gazeta.pl> <168f208a-9218-484f-82cd-2c3dc452d48f@v4g2000vba.googlegroups.com> <gvriog$c4n$1@inews.gazeta.pl> <fff60de0-8de1-4f54-bae0-960e47e1bfd3@o14g2000vbo.googlegroups.com> <b5d08268-4d2e-4e43-a816-196a0781602a@z9g2000yqi.googlegroups.com> <16742a2d-f987-46f6-91ef-572f952e5fd7@n19g2000vba.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: Wed, 03 Jun 2009 17:59:33 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 40
Message-ID: <h066l7$5kk$1@inews.gazeta.pl>
References: <29a4a4e4-9913-4afa-ba78-63b3168b1c91@r34g2000vbi.googlegroups.com>  <1800926.ER7XFjMh0G@meehow.homeip.net> <6a3c09a9-6a40-491a-8d0b-aebe884ddeb9@k38g2000yqh.googlegroups.com>  <gvh3mf$a3r$1@inews.gazeta.pl> <0350c547-38dd-4ffd-9348-994f087be99e@21g2000vbk.googlegroups.com>  <gvhacl$b4v$1@inews.gazeta.pl> <4cd17bbe-78cb-4b0c-8dcf-d71287d4f307@x3g2000yqa.googlegroups.com>  <f5c0cab0-caff-4858-bfad-4106556e0597@r13g2000vbr.googlegroups.com>  <gvrei4$l9v$1@inews.gazeta.pl> <168f208a-9218-484f-82cd-2c3dc452d48f@v4g2000vba.googlegroups.com>  <gvriog$c4n$1@inews.gazeta.pl> <fff60de0-8de1-4f54-bae0-960e47e1bfd3@o14g2000vbo.googlegroups.com>  <b5d08268-4d2e-4e43-a816-196a0781602a@z9g2000yqi.googlegroups.com> <16742a2d-f987-46f6-91ef-572f952e5fd7@n19g2000vba.googlegroups.com>
NNTP-Posting-Host: 66.230.230.230
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1244044780 5780 66.230.230.230 (3 Jun 2009 15:59:40 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Wed, 3 Jun 2009 15:59:40 +0000 (UTC)
X-User: bog.d
In-Reply-To: <16742a2d-f987-46f6-91ef-572f952e5fd7@n19g2000vba.googlegroups.com>
User-Agent: Thunderbird 2.0.0.21 (X11/20090302)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit