🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #2561

Re: Konwersja dużych liczb

#2561
From: Kamil
Date: Thu, 12 Sep 2013 05:20
58 lines
3324 bytes
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. 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?

> 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. 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. Ewentualne błędy jeśli się ujawnią w 
wynikach znajduję przy pomocy debuggera.

Pozdrawiam
Technical Details
Message-ID: <52314f14$0$1454$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!goblin1!goblin.stu.neva.ru!news.glorb.com!news-out.readnews.com!transit3.readnews.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
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>

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!goblin1!goblin.stu.neva.ru!news.glorb.com!news-out.readnews.com!transit3.readnews.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.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> <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>
Subject: Re: Konwersja dużych liczb
Date: Thu, 12 Sep 2013 07:20:09 +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: 59
Message-ID: <52314f14$0$1454$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.7.25.189
X-Trace: 1378963220 unt-rea-a-01.news.neostrada.pl 1454 83.7.25.189:1727
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit