🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Równie prosta zagadka

#2196
From: Andrzej Grażyński
Date: Tue, 13 Apr 2010 15:16
70 lines
2371 bytes
Bernard pisze:
> On 2010-04-10 21:42, Andrzej Grażyński wrote:
>> Andrzej Grażyński pisze:
>>> 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ć?
>>
>>
>>
>>
>> Co sądzicie o tym? (nie testowałem)
> 
> No to potestujmy. Przyjmijmy ECX równe 7 i wektor bajtów o wartościach 
> 1, 2, 3, 4, 5, 6, 7.
> 
> 
>> CLD
> Zbędne wg ABI.
>> ADD ECX,4
> ECX = 11
>> MOV EBX,7
>> AND EBX,ECX
> EBX = 3
>> SHR ECX,3
> ECX = 1
>> LEA EDI,[ESI+ECX-1]


Tym razem sprawdziłem:

     CLD

     LEA EDI,[ESI+ECX-4]

     PUSH  ECX

     ADD ECX,4
     SHR ECX,3
     JZ  @@Partial

@@Loop:
     LODSD
     MOV EDX,[EDI]
     BSWAP EAX
     BSWAP EDX
     STOSD
     MOV [ESI-4],EDX
     SUB EDI,8
     LOOP @@Loop

@@Partial:


     POP EBX
     AND EBX,7
     JZ  @@Done
     TEST EBX,4
     JNZ @@Done

     MOV AL,[ESI]
     LEA EDI,[ESI+EBX-1]
     MOV AH,[EDI]
     STOSB
     MOV [ESI],AH
@@Done:


Na pewno NIE jest to prostsze ani czytelniejsze od zwykłego 
przestawiania bajtów. Ale ciekawe jak z szybkością. Czy ktoś może 
porównać z innymi przykładami wcześniej tu prezentowanymi?
Technical Details
Message-ID: <hq21su$jsj$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!border1.nntp.ams3.giganews.com!border1.nntp.ams2.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!newsfeed00.sul.t-online.de!t-online.de!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mail
References: <hpiqg4$te8$2@news.onet.pl> <hpqkb8$o4i$1@news.onet.pl> <hpvns8$2hh$1@newsread1.aster.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!border1.nntp.ams3.giganews.com!border1.nntp.ams2.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!newsfeed00.sul.t-online.de!t-online.de!news.nask.pl!news.nask.org.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: Tue, 13 Apr 2010 17:16:21 +0200
Organization: http://onet.pl
Lines: 70
Message-ID: <hq21su$jsj$1@news.onet.pl>
References: <hpiqg4$te8$2@news.onet.pl> <hpqkb8$o4i$1@news.onet.pl> <hpvns8$2hh$1@newsread1.aster.pl>
NNTP-Posting-Host: public-gprs86172.centertel.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1271171808 20371 91.94.210.66 (13 Apr 2010 15:16:48 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Tue, 13 Apr 2010 15:16:48 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
In-Reply-To: <hpvns8$2hh$1@newsread1.aster.pl>
Bytes: 2356
X-Original-Bytes: 2301
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit