Article View: pl.comp.lang.asm
Article #1938Re: Visual Studio 2008 (C++ oraz DLL w asmie) Interpolacja
From: Bogdan (bogdro)
Date: Wed, 03 Jun 2009 15:59
Date: Wed, 03 Jun 2009 15:59
40 lines
3120 bytes
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-mailReferences:
<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