Article View: pl.comp.lang.asm
Article #2142Re: Zagadka
From: Wojciech Muła
Date: Thu, 25 Mar 2010 19:26
Date: Thu, 25 Mar 2010 19:26
37 lines
2261 bytes
2261 bytes
Andrzej Grażyński <grazynsk@petex.com.pl> wrote: > >>>> EAX <- MIN(EAX, EDX) signed > >>>> > >>>> CMP EAX,EDX > >>>> SETL BL > >>>> NEG BL > >>>> SBB EBX,EBX > >>>> AND EAX,EBX > >>>> NOT EBX > >>>> AND EDX,EBX > >>>> OR EAX,EDX > >>> Można zejść do 4 instrukcji. > > > > sub edx, eax > > I tu jest problem: jeżeli w eax i edx będą liczby przeciwnych znaków > takie, że ich różnica nie zmieści się na 32 bitach (jako signed), to CF > zostanie ustawiony niezależnie od tego, czy EDX<EAX czy EDX>=EAX. I > ostateczny wynik może nie być poprawny. > > Oryginalne rozwiązanie podane przez Knutha bazuje na formule > > MIN(X, y) = (X + Y - ABS(X-Y))/2 > > i jest tak samo wrażliwe na problem nadmiaru. Faktycznie, nie zwróciłem na to uwagi. Ale dalej można wykorzystać trik z xorem dla dodatnich - w końcu tylko warunkowo podmieniamy bity. Podrzuć jeszcze jakieś zadanko, to miło czasem ruszyć głową nad zdałoby się prostym problemem. w. -- Mamy oswojoną sarnę i w związku z tym projektuję, by dorobić do niej kłódkę.
Technical Details
Message-ID:
<20100325202642.6eb8bfe8.wojciech_mula@poczta.null.onet.pl.invalid>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.telbank.pl!news.task.gda.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mailReferences:
<hnm094$v7l$1@news.onet.pl> <hnoh5b$3m7$1@inews.gazeta.pl> <hnveer$306$1@news.onet.pl> <20100319114543.3cac8a82.wojciech_mula@poczta.null.onet.pl.invalid> <ho8ca6$tvk$1@news.onet.pl> <20100322194214.69cd904d.wojciech_mula@poczta.null.onet.pl.invalid> <hodubo$aan$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.telbank.pl!news.task.gda.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mail From: Wojciech Muła <wojciech_mula@poczta.null.onet.pl.invalid> Newsgroups: pl.comp.lang.asm Subject: Re: Zagadka Date: Thu, 25 Mar 2010 20:26:42 +0100 Organization: http://onet.pl Lines: 40 Message-ID: <20100325202642.6eb8bfe8.wojciech_mula@poczta.null.onet.pl.invalid> References: <hnm094$v7l$1@news.onet.pl> <hnoh5b$3m7$1@inews.gazeta.pl> <hnveer$306$1@news.onet.pl> <20100319114543.3cac8a82.wojciech_mula@poczta.null.onet.pl.invalid> <ho8ca6$tvk$1@news.onet.pl> <20100322194214.69cd904d.wojciech_mula@poczta.null.onet.pl.invalid> <hodubo$aan$1@news.onet.pl> NNTP-Posting-Host: public-gprs42365.centertel.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1269545213 6519 91.94.37.201 (25 Mar 2010 19:26:53 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Thu, 25 Mar 2010 19:26:53 +0000 (UTC) X-Newsreader: Sylpheed 2.5.0 (GTK+ 2.10.14; i686-pc-mingw32) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit