Article View: pl.comp.lang.asm
Article #260Re: optymalizacja
From: Bogdan (bogdro)
Date: Fri, 19 May 2006 16:57
Date: Fri, 19 May 2006 16:57
48 lines
2950 bytes
2950 bytes
tosamo napisał(a): > Ale takie cos : > > mov DWORD PTR [Intermediate_Hash],067452301h > mov DWORD PTR [Intermediate_Hash+4],0EFCDAB89h > mov DWORD PTR [Intermediate_Hash+8],098BADCFEh > mov DWORD PTR [Intermediate_Hash+12],010325476h > mov DWORD PTR [Intermediate_Hash+16],0C3D2E1F0h > > bedzie lepsze niz > > mov eax,offset Intermediate_Hash > mov DWORD PTR [eax],067452301h > mov DWORD PTR [eax+4],0EFCDAB89h > mov DWORD PTR [eax+8],098BADCFEh > mov DWORD PTR [eax+12],010325476h > mov DWORD PTR [eax+16],0C3D2E1F0h > > ? Wersja z rejestrem nie jest szybsza ? Wersja z rejestrem na pewno będzie wygodniejsza w pisaniu i w utrzymaniu. Czy szybsza, to nie wiem. Jak miałbym zgadywać, to powiedziałbym, że nie, bo podałeś grupy instrukcji typu: mov [zmienna], liczba i mov [eax], liczba Ten adres musi jednak kiedyś być obliczany, bo nie jest stały. A pierwsza grupa instrukcji operuje na stałych adresach obliczonych i wstawionych na sztywno przez kompilator czy linker (niemniej, są one zakodowane na sztywno w programie). Poza tym, nie ukrywajmy, że jest to o 1 instrukcję (mov eax,) mniej. Jeśli drugi fragment kodu wygląda w programie tak, jak tutaj, to dodatkowo na korzyść *pierwszego* przemawia zwolnienie rejestru EAX do obliczeń lub przechowywania jakiejś zmiennej oraz przede wszystkim likwidacja zależności między co najmniej 2 instrukcjami, którą to zależność gołym okiem widać w 2 pierwszych instrukcjach drugiej grupy: mov eax, ... / mov [eax..], ... -- Pozdrawiam, Bogdan (Linux i FreeDOS) Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Technical Details
Message-ID:
<e4kthl$25d$1@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<e4f5nl$rj4$1@inews.gazeta.pl> <e4ffrk$he5$1@nemesis.news.tpi.pl> <e4fi7h$q1b$1@inews.gazeta.pl> <e4hbi4$fpm$1@atlantis.news.tpi.pl> <e4it6m$c00$1@inews.gazeta.pl> <e4j148$kn7$1@inews.gazeta.pl> <e4k9m6$ogh$1@atlantis.news.tpi.pl> <e4kh6c$fp$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@bogdan.pl> Newsgroups: pl.comp.lang.asm Subject: Re: optymalizacja Date: Fri, 19 May 2006 18:57:29 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 48 Message-ID: <e4kthl$25d$1@nemesis.news.tpi.pl> References: <e4f5nl$rj4$1@inews.gazeta.pl> <e4ffrk$he5$1@nemesis.news.tpi.pl> <e4fi7h$q1b$1@inews.gazeta.pl> <e4hbi4$fpm$1@atlantis.news.tpi.pl> <e4it6m$c00$1@inews.gazeta.pl> <e4j148$kn7$1@inews.gazeta.pl> <e4k9m6$ogh$1@atlantis.news.tpi.pl> <e4kh6c$fp$1@inews.gazeta.pl> NNTP-Posting-Host: actz222.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1148057974 2221 83.11.79.222 (19 May 2006 16:59:34 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Fri, 19 May 2006 16:59:34 +0000 (UTC) User-Agent: Thunderbird 1.5.0.2 (X11/20060420) In-Reply-To: <e4kh6c$fp$1@inews.gazeta.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit