🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Wyświetlanie liczb od 90 do 100

#1414
From: Bogdan (bogdro)
Date: Sun, 12 Aug 2007 13:59
55 lines
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-mail
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>

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