Article View: pl.comp.lang.asm
Article #2557Re: Konwersja dużych liczb
From: Kamil
Date: Tue, 10 Sep 2013 10:22
Date: Tue, 10 Sep 2013 10:22
54 lines
2768 bytes
2768 bytes
Użytkownik "Bogdan (bogdro)" napisał: > Wszystko się zgadza. Przed ostatnim znakiem mnożysz ostatni raz > liczbę przez 10, po czym dodajesz ten ostatni znak. Dzięki Tobie przeanalizowałem jeszcze raz procedurę. Przyjrzałem się dokładnie poniższej procedurce: [code] pobieraj: mov bl, [esi] cmp bl, 0 jz _do_ret cmp bl, 20h jz pomin cmp bl, 40h ja _blad1 cmp bl, 30h jb _blad1 sub bl, 30h mul ecx ; wynik jest w eax jc _blad2 add eax, ebx [/code] Bardzo zręczne rozwiązanie. Pierwsze mnożenie jest "puste". Dzięki temu ostatni znak nie jest mnożony. Z tego wzorca korzystłem tworząć iterację wielokrotnej precyzji. Wszystko było dobrze z małymi wyjątkami: pushf add esi, 4 add edi, 4 popf O czym juz chyba wspomniałem. Brakowało odtworzenia flag w iteracji. Jednak w dalszym ciągu były błędy dla niektórych danych wejściowych. Sprawa okazała sie banalna. Było: add dword ptr [esi], ebx adc dword ptr [esi+4], 0 adc dword ptr [esi+8], 0 zmieniłem na: add dword ptr [esi], ebx adc dword ptr [esi+4], 0 adc dword ptr [esi+8], 0 adc dword ptr [esi+12], 0 Można się załamać szukając tak prostej przyczyny. Czy teraz jest już wystarczająca ilość adc? Ile ich powinno być, aby być całkowicie pewnym? Pozdrawiam i serdecznie dziękuję za pomoc.
Technical Details
Message-ID:
<522ef313$0$1261$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin.stu.neva.ru!feeder.erje.net!us.feeder.erje.net!usenet.blueworldhosting.com!feeder02.blueworldhosting.com!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<52239cda$0$1225$65785112@news.neostrada.pl> <522a0fcd$0$1459$65785112@news.neostrada.pl> <522a4a2c$0$1268$65785112@news.neostrada.pl> <522b5a7a$0$1263$65785112@news.neostrada.pl> <522c61b4$0$1470$65785112@news.neostrada.pl> <522dfbe2$0$1267$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!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin.stu.neva.ru!feeder.erje.net!us.feeder.erje.net!usenet.blueworldhosting.com!feeder02.blueworldhosting.com!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail From: "Kamil" <nospam@tlen.pl> Newsgroups: pl.comp.lang.asm References: <52239cda$0$1225$65785112@news.neostrada.pl> <522a0fcd$0$1459$65785112@news.neostrada.pl> <522a4a2c$0$1268$65785112@news.neostrada.pl> <522b5a7a$0$1263$65785112@news.neostrada.pl> <522c61b4$0$1470$65785112@news.neostrada.pl> <522dfbe2$0$1267$65785112@news.neostrada.pl> Subject: Re: Konwersja dużych liczb Date: Tue, 10 Sep 2013 12:22:33 +0200 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 Lines: 58 Message-ID: <522ef313$0$1261$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 83.7.27.147 X-Trace: 1378808595 unt-rea-a-02.news.neostrada.pl 1261 83.7.27.147:1640 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit