Article View: pl.comp.lang.asm
Article #2235Re: jeszcze jeszcze prostsza zagadka
From: Michoo
Date: Sat, 08 May 2010 17:21
Date: Sat, 08 May 2010 17:21
59 lines
2342 bytes
2342 bytes
Andrzej Grażyński pisze:
> and al,$0f
> add al,$90
> daa
> adc al,$40
> daa
Sprytne.
>
> A propos:
>
> Skoki NIE są tanie, i wielu uczestników tego forum może znakomicie
> wyjaśnić, dlaczego.
W porównaniu z moją wersją (swoją drogą jak właśnie zauważyłem błędną:
'A'-'9' = 8 a nie 9) nie widać różnicy.
"andb $0x0f,%%al;\n"
"cmp $10,%%al;\n"
"jl skip;\n"
"add $7,%%al;\n"
"skip: add $48,%%al;\n"
W porównaniu z Twoim kodem na Core2Duo i na Xeonie:
rozkład równomierny - twój kod ~25% szybszy
przedział 0-8 - mój kod szybszy o ~5%
przedział 9-15 - mój kod szybszy o ~5%
W porównaniu z Twoim kodem na AMD Geode:
rozkład równomierny - mój kod ~8% szybszy
przedział 0-8 - mój kod szybszy o ~10%
przedział 9-15 - mój kod szybszy o ~3%
Liczony był czas pracy, więc z jednej strony 25% to strasznie dużo
biorąc pod uwagę, że czas wykonania uwzględniał call, z drugiej strony
jest to odpowiednik doklejenia "mov %%eax,%%ebx;mov %%ebx,%%eax" w Twoim
kodzie - czy to jest drogo pozostawiam do oceny własnej.
Testowane w pętli:
for(int i=0;i<1000000;i++)
for(int j=0;j<255;j++)
con2(j);
char con2(uint8_t in)
{
char c;
__asm__ (
"movb %0,%%al;\n"
//tutaj kod
"movb %%al,%1;\n"
:"=r"(c)
:"r"(in)
:"%eax"
);
return c;
}
--
Pozdrawiam
Michoo
Technical Details
Message-ID:
<hs46hs$p1d$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mailReferences:
<hs1uip$ebv$1@news.onet.pl> <hs3jht$tdk$1@news.onet.pl> <hs3s2e$jhb$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail From: Michoo <michoo_news@vp.pl> Newsgroups: pl.comp.lang.asm Subject: Re: jeszcze jeszcze prostsza zagadka Date: Sat, 08 May 2010 19:21:01 +0200 Organization: http://onet.pl Lines: 59 Message-ID: <hs46hs$p1d$1@news.onet.pl> References: <hs1uip$ebv$1@news.onet.pl> <hs3jht$tdk$1@news.onet.pl> <hs3s2e$jhb$1@news.onet.pl> NNTP-Posting-Host: c2-211.icpnet.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1273339260 25645 62.21.2.211 (8 May 2010 17:21:00 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Sat, 8 May 2010 17:21:00 +0000 (UTC) User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090706) In-Reply-To: <hs3s2e$jhb$1@news.onet.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit