Article View: pl.comp.lang.asm
Article #2562Re: Konwersja dużych liczb
From: Bogdan (bogdro)
Date: Thu, 12 Sep 2013 17:05
Date: Thu, 12 Sep 2013 17:05
92 lines
4433 bytes
4433 bytes
W dniu 12.09.2013 07:20, Kamil pisze: > Użytkownik "Bogdan (bogdro)" napisał: > >>>> A tak mi się coś właśnie wydawało, że te bufory jakichś dziwnych >>>> długości były, ale nie przyjrzałem się dość dokładnie. >>> >>> Jakich dziwnych d ługości? :) 512B. Na wszelki. Jak mnożę dwie liczby >>> po 128B to już mam wynik co najmniej 256B. Od przybytku ... > >> Mówię o równoległym poście, np. > >> lea esi, wynik >> lea edi, arg1 ; przeładowujemy dane z wynik do arg1 >> mov ecx, 128 >> rep movsd > >> 128 dwordów to 1kB. Raczej spodziewałbym się mniejszych liczb. > > 128 dwordów to 512 bajtów. Tak, zakumałem się po wysłaniu posta, ale już było późno i nie chciało mi się włączać kompa. > Przeładowuję całe bufory zadeklarowane: > > wynik db 512 dup(?) > arg1 db 512 dup(?) > >> mnozymy: > >> mov eax, dword ptr [esi] >> mul mnoznik >> add dword ptr [edi], eax >> adc dword ptr [edi+4], edx >> adc dword ptr [edi+8], 0 >> adc dword ptr [edi+12], 0 >> adc dword ptr [edi+16], 0 > >> Tu z kolei 5 dwordów (20 bajtów). Takie jakieś nietypowe :) > > Do procedur zaglądałem w różnym czasie i coś mogło umknąć. Nie > wiedziałem jeszcze tego co napisałeś o ilości ADC. Dałem za dużo na > wszelki wypadek, ale to chyba niczego nie zmienia w działaniu? Nie zmienia, o ile mieścisz się w buforze. Niedobrze byłoby np. wynik db 8 dup(?) arg1 db 8 dup(?) add dword ptr [wynik], ebx adc dword ptr [wynik+4], 0 adc dword ptr [wynik+8], 0 Bo to zamazałoby część "arg1". >> add dword ptr [esi], ebx >> adc dword ptr [esi+4], 0 >> adc dword ptr [esi+8], 0 > >> A to mnie chyba najbardziej zdziwiło w porównaniu z poprzednimi > > W "dodawanie PROC". To już jest poprawione, ADC było za mało o jedną > linijkę i były błędy. Teraz jest: > > add dword ptr [esi], ebx > adc dword ptr [esi+4], 0 > adc dword ptr [esi+8], 0 > adc dword ptr [esi+8], 0 > > i działa już (chyba) dobrze. Tylko jeśli ta ostatnia ósemka zmieni się w dwunastkę :) > Zresztą już o tym wspomniałem. Podziwiam > Twoją umijętność analizowania działania programu na podstawie źródła. > Ja tego nie potrafię w takim stopniu jak Ty. Dzięki :) > Ewentualne błędy jeśli > się ujawnią w wynikach znajduję przy pomocy debuggera. Czasem każdemu się przydaje. Czasem do własnych programów, czasem do cudzych, gdy np. rozszerzenie do Firefoksa zabija całą przeglądarkę, bo część binarna była źle skompilowana :) -- 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:
<5231f473$0$1456$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!feeder1.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.246.MISMATCH!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> <522ef313$0$1261$65785112@news.neostrada.pl> <522f5be5$0$1450$65785112@news.neostrada.pl> <522f80e7$1$1253$65785112@news.neostrada.pl> <52308ff7$0$1453$65785112@news.neostrada.pl> <52314f14$0$1454$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!feeder1.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.246.MISMATCH!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 Date: Thu, 12 Sep 2013 19:05:50 +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: Konwersja dużych liczb 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> <522ef313$0$1261$65785112@news.neostrada.pl> <522f5be5$0$1450$65785112@news.neostrada.pl> <522f80e7$1$1253$65785112@news.neostrada.pl> <52308ff7$0$1453$65785112@news.neostrada.pl> <52314f14$0$1454$65785112@news.neostrada.pl> In-Reply-To: <52314f14$0$1454$65785112@news.neostrada.pl> Lines: 92 Message-ID: <5231f473$0$1456$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: rudy.mif.pg.gda.pl X-Trace: 1379005557 unt-rea-a-01.news.neostrada.pl 1456 153.19.42.16:43390 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit