Article View: pl.comp.lang.asm
Article #2567Re: Odejmowanie dużych liczb
From: Bogdan (bogdro)
Date: Fri, 06 Sep 2013 17:36
Date: Fri, 06 Sep 2013 17:36
71 lines
2673 bytes
2673 bytes
W dniu 06.09.2013 08:04, Kamil pisze: > Użytkownik "Kamil" napisał: > > Ta procedura działa błędnie dla niektórych danych wejściowych. Czym otrzymany wynik różni się od oczekiwanego? > Pryczyny nie znalazłem. Może komuś uda się znaleźć błąd? > > [code] > > push edi > push esi > push ebx > push ebp > > mov esi, odarg1 > mov edi, odkarg2 > mov ebx, odwynik > mov ecx, 20 > > mov eax, pam [esi] > sub eax, pam [edi] > mov pam [ebx], eax Bez definicji "pam" może być trudno to zinterpretować. > odejmujemy: > > mov eax, pam [esi+4] > sbb eax, pam [edi+4] > mov pam [ebx+4], eax > > jc arg1_mniejszy_od_arg2 > > add esi, 4 > add edi, 4 > add ebx, 4 > > loop odejmujemy Wiesz, że odejmujesz 21 "czwórek", prawda? ECX = 20, ale pozycję [0] obsługujesz przed pętlą, a w pętli obsługujesz pozycje [4], [8], [12], ..., [80], czyli łącznie bajty na offsetach od 0 do 83 włącznie. > arg1_mniejszy_od_arg2: > > pop ebp > pop ebx > pop esi > pop edi > > mov eax, 'aw' > jmp _do_ret_od2 > > _do_ret_od2: > > ret > > [/code] > > Pozdrawiam > -- 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.Xiph.org www.TorProject.org Soft(EN): tinyurl.com/bogdro-soft
Technical Details
Message-ID:
<522a1288$0$1452$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!us.feeder.erje.net!news.glorb.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<52293698$0$1261$65785112@news.neostrada.pl> <52297086$0$1468$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!us.feeder.erje.net!news.glorb.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Date: Fri, 06 Sep 2013 19:36:04 +0200 From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 Newsgroups: pl.comp.lang.asm Subject: Re: Odejmowanie dużych liczb References: <52293698$0$1261$65785112@news.neostrada.pl> <52297086$0$1468$65785112@news.neostrada.pl> In-Reply-To: <52297086$0$1468$65785112@news.neostrada.pl> Lines: 71 Message-ID: <522a1288$0$1452$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: rudy.mif.pg.gda.pl X-Trace: 1378488972 unt-rea-a-01.news.neostrada.pl 1452 153.19.42.16:50840 X-Complaints-To: abuse@news.neostrada.pl X-Received-Bytes: 2377 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit