Article View: pl.comp.lang.asm
Article #2181Re: Jeszcze prostsza zagadka
From: Bogdan (bogdro)
Date: Fri, 16 Apr 2010 16:11
Date: Fri, 16 Apr 2010 16:11
41 lines
2081 bytes
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-mailReferences:
<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