Article View: pl.comp.lang.asm
Article #1414Re: Wyświetlanie liczb od 90 do 100
From: Bogdan (bogdro)
Date: Sun, 12 Aug 2007 13:59
Date: Sun, 12 Aug 2007 13:59
55 lines
3134 bytes
3134 bytes
Wiktor S. pisze: > Bogdan (bogdro) wrote: >> Doleś pisze: >>> >>> Wybacz, ale po prostu nie do końca jeszcze rozumiem znaczenie [] w >>> Asemblerze. Czy to jest jakis odpowiednik operatora wyłuskania z >>> C/C++ czy mam to sobie tłumaczyć jako "operator odwołania się do >>> elementu zapisanego w TYM adresie" ? >> >> Tak, nawiasy kwadratowe to dereferencja, jak gwiazdka przy '*ptr' w >> C/C++, jesli 'ptr' to wskaźnik. Używasz kompilatora FASM, a w nim >> nazwa zmiennej gra rolę wskaźnika, czyli >> >> mov eax, zmienna == 'eax = &zmienna' w C/C++ >> mov eax, [zmienna] == 'eax = *&zmienna' w C/C++ >> >> Jako że * i & się "znoszą", ostatnie wyrażenie to po prostu >> 'eax=zmienna', czyli odczyt zawartości pamięci wskazywanej przez >> wskaźnik o nazwie 'zmienna'. >> >> Co do marnotrawstwa - wyobraź sobie, że używanie rejestrów >> 16-bitowych w Linuksie to marnotrawstwo :) Jako że program jest >> domyślnie 32-bitowy, używanie rejestrów 16-bitowych powoduje dodanie >> po 1 bajcie (66h) do kazdej instrukcji z nich korzystającej. > > VETO :-) > > mov eax,10 to B8 0A 00 00 00 > mov ax,10 to 66 B8 0A 00 No dobra, tego przypadku nie rozważałem. Niemniej, jeśli dałoby się mov ax, dword 10 żeby wielkość stałej była taka sama, to byłoby o 1 bajt więcej. :) Ale racja, punkt dla Ciebie :) Dodam jeszcze, że jak się adresuje 16-bitowo w kodzie 32-bitowym, to dochodzi kolejny bajt (67h). > czyli mimo wszystko o bajt mniej ;-) > ale mimo wszystko należy używać rejestrów 32-bitowych, chyba że zachodzi > uzasadniona okoliczność, by uczynić inaczej. Oczywiście, jeśli jest wygodne, lepsze, bardziej czytelne lub ma jakiekolwiek inne zalety, to można. Jednak jeśli szukamy wydajności, to zazwyczaj należy unikać rejestrów cząstkowych w ogóle. -- Pozdrawiam/Regards - Bogdan (Linux & FreeDOS) Kurs asemblera x86 (DOS & Linux): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Technical Details
Message-ID:
<f9n3ou$d0e$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<f8upq6$pn3$1@nemesis.news.tpi.pl> <f8v85h$a75$1@inews.gazeta.pl> <f8v9aq$c19$1@atlantis.news.tpi.pl> <f94vu8$4uk$1@inews.gazeta.pl> <f9mvkc$q1q$1@news.onet.pl>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: Wyświetlanie liczb od 90 do 100 Date: Sun, 12 Aug 2007 15:59:36 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 55 Message-ID: <f9n3ou$d0e$1@inews.gazeta.pl> References: <f8upq6$pn3$1@nemesis.news.tpi.pl> <f8v85h$a75$1@inews.gazeta.pl> <f8v9aq$c19$1@atlantis.news.tpi.pl> <f94vu8$4uk$1@inews.gazeta.pl> <f9mvkc$q1q$1@news.onet.pl> NNTP-Posting-Host: aquatorius.spemaus.net Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1186927202 13326 212.112.241.44 (12 Aug 2007 14:00:02 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Sun, 12 Aug 2007 14:00:02 +0000 (UTC) X-User: bog.d In-Reply-To: <f9mvkc$q1q$1@news.onet.pl> User-Agent: Thunderbird 2.0.0.6 (X11/20070728) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit