🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Jeszcze prostsza zagadka

#2181
From: Bogdan (bogdro)
Date: Fri, 16 Apr 2010 16:11
41 lines
2081 bytes
W dniu 07.04.2010 22:36, Andrzej Grażyński pisze:
> Są instrukcje CPMS?, MOVS?, SCAS?, LODS? i STOS?, nie ma instrukji
> ZAMIENIAJĄCYCH ZAWARTOŚĆ: XCHGS? (ES:[DI] <-> DS:[SI]) ani SWAPS?
> (akumulator<-> ES:[DI})
> 
> 
> No właśnie: dane są dwa pola, adresy w DS:[SI] i ES:[DI], długość w
> bajtach w ECX. Jak je efektywnie zamienić? Przewidzieć akcję w obu
> kierunkach, bo pola mogą się nakładać i efekt będzie różny.

 Chodziło o coś w tym stylu?

	mov	dx, kierunek	; 1 = do przodu, -1 = do tyłu

	cmp	dx, 1
	je	petla
		; co prawda długość jest w ECX, ale skoro adresy są
		; 16-bitowe, to starsze bity długości sobie darujemy
	add	si, cx
	dec	si
	add	di, cx
	dec	di
petla:
	mov	al, [ds:si]
	mov	bl, [es:di]
		; znana sztuczka:
	xor	al, bl
	xor	bl, al
	xor	al, bl
		; AL zamienione z BL - zapisz z powrotem
	mov	[ds:si], al
	mov	[es:di], bl
	add	si, dx		; +- 1
	add	di, dx
	loop	petla

-- 
Pozdrawiam/Regards - Bogdan                     (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID: <hqa281$jg6$2@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <hpiqc2$te8$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: Jeszcze prostsza zagadka
Date: Fri, 16 Apr 2010 18:11:45 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 41
Message-ID: <hqa281$jg6$2@inews.gazeta.pl>
References: <hpiqc2$te8$1@news.onet.pl>
NNTP-Posting-Host: rudy.mif.pg.gda.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1271434313 19974 153.19.42.16 (16 Apr 2010 16:11:53 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Fri, 16 Apr 2010 16:11:53 +0000 (UTC)
X-User: bog.d
In-Reply-To: <hpiqc2$te8$1@news.onet.pl>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit