Article View: pl.comp.lang.asm
Article #2196Re: Równie prosta zagadka
From: Andrzej Grażyński
Date: Tue, 13 Apr 2010 15:16
Date: Tue, 13 Apr 2010 15:16
70 lines
2371 bytes
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-mailReferences:
<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