🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: jeszcze jeszcze prostsza zagadka

#2235
From: Michoo
Date: Sat, 08 May 2010 17:21
59 lines
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-mail
References: <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