🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Równie prosta zagadka

#2190
From: Andrzej Grażyński
Date: Fri, 09 Apr 2010 20:53
39 lines
1922 bytes
Bernard pisze:
> On 2010-04-07 22:38, Andrzej Grażyński wrote:
>> Dane jest pole o długości L bajtów. Odrócić kolejność bajtów w tym polu.
>>
>> Wskazówka: czy SWAPB może się tu do czegoś przydać?
> 
> SWAPB może się przydać, ale więcej z tym kłopotu niż pożytku z powodu 
> konieczności obsługi przypadków, gdy rozmiar wektora jest poniżej 4 lub 
> nie jest wielokrotnością 4. Kod ze SWAPB będzie pewnie ciut szybszy i 
> wyraźnie dłuższy.
> 
> Klasycznie robi się to np. tak:
> 
> ; EDI - adres poczatku, ECX - l. bajtow
> 
>     lea    esi, [edi + ecx - 1]
> rlop:
>     mov    al, [edi]
>     xchg    al, [esi]
>     stosb
>     dec     esi
>     cmp    esi, edi
>     jb    rlop
> 
> Albo przed pętlą dokładamy shr ecx, 1, a pętlę zamykamy instrukcją loop, 
> usuwając cmp i jb

   LEA  EDI,[ESI+ECX-1]
   SHR  ECX,1
   JZ   @@Ready
   STD
@@Loop:
   MOV AL,[EDI]
   MOVSB
   INC ESI            ; MOV [ESI+1],AL
   MOV [ESI],AL       ; ADD ESI,2
   INC ESI            ; ----
   LOOP @@Loop
@@Ready:
Technical Details
Message-ID: <hpo44s$583$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mail
References: <hpiqg4$te8$2@news.onet.pl> <hpmpsm$ga1$1@newsread1.aster.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mail
From: Andrzej Grażyński <grazynsk@petex.com.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: Równie prosta zagadka
Date: Fri, 09 Apr 2010 22:53:32 +0200
Organization: http://onet.pl
Lines: 44
Message-ID: <hpo44s$583$1@news.onet.pl>
References: <hpiqg4$te8$2@news.onet.pl> <hpmpsm$ga1$1@newsread1.aster.pl>
NNTP-Posting-Host: public-gprs135767.centertel.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1270846430 5379 79.162.125.152 (9 Apr 2010 20:53:50 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Fri, 9 Apr 2010 20:53:50 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
In-Reply-To: <hpmpsm$ga1$1@newsread1.aster.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit