🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Równie prosta zagadka

#2186
From: Bernard
Date: Fri, 09 Apr 2010 08:52
25 lines
1738 bytes
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
Technical Details
Message-ID: <hpmpsm$ga1$1@newsread1.aster.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!plix.pl!newsfeed1.plix.pl!nntp.aster.pl!newsread1.aster.pl!not-for-mail
References: <hpiqg4$te8$2@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!plix.pl!newsfeed1.plix.pl!nntp.aster.pl!newsread1.aster.pl!not-for-mail
From: Bernard <bernard@earth.net>
Newsgroups: pl.comp.lang.asm
Subject: Re: Równie prosta zagadka
Date: Fri, 09 Apr 2010 10:52:09 +0200
Organization: Aster Sp. z o.o.
Lines: 25
Message-ID: <hpmpsm$ga1$1@newsread1.aster.pl>
References: <hpiqg4$te8$2@news.onet.pl>
NNTP-Posting-Host: 187-mo6-2.acn.waw.pl
Mime-Version: 1.0
X-Trace: newsread1.aster.pl 1270803158 16705 82.210.165.187 (9 Apr 2010 08:52:38 GMT)
X-Complaints-To: abuse@aster.pl
NNTP-Posting-Date: Fri, 9 Apr 2010 08:52:38 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
In-Reply-To: <hpiqg4$te8$2@news.onet.pl>
X-Antivirus: avast! (VPS 100408-1, 2010-04-08), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit