🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Konwersja dużych liczb

#2555
From: Kamil
Date: Mon, 09 Sep 2013 05:45
126 lines
2890 bytes
To moja procedura konwersji. Wydawało by się, że działa dobrze. Niestety dla
niektórych danych wejściowych wystepują błędy, których nie umiem znaleźć.
Przykład:

633825300114114700748351602688 : 1 = 554597137599850363154807652352

[code]
stringdec2hex PROC

 push edi
 push esi
 push ebx
 push ebp

 lea esi, bcEdit
 mov mnoznik, 0Ah
 xor eax, eax
 xor ebx, ebx

pobieraj:
 mov bl, [esi]
 cmp bl, 0
 jz  konczymy

   sub bl, 30h

 mov [argd2], bl
 call czysc_wynik
 call mnozenie

 push esi
 push edi
 push ecx
 lea esi, wynik
 lea edi, arg1 ; przeładowujemy dane z wynik do arg1
 mov ecx, 128
 rep movsd
 pop ecx
 pop edi
 pop esi

 call dodawanie

 inc esi
 jmp pobieraj

konczymy:

 push esi
 push edi
 push ecx
 lea esi, arg1
 mov edi, bwynik  ; przeładowujemy dane z arg1 do bwynik
 mov ecx, 128
 rep movsd
 pop ecx
 pop edi
 pop esi

 pop ebp
 pop ebx
 pop esi
 pop edi

ret

stringdec2hex endp


mnozenie PROC

 push esi
 push edi

 lea esi, arg1
 lea edi, wynik
 mov ecx, 18

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

 jc   messag1

 pushf
 add esi, 4
 add edi, 4
 popf

 loop mnozymy
 jmp  _do_retm

messag1:
 mov eax, 'CF'
_do_retm:

 pop  edi
 pop  esi
   ret

mnozenie endp


dodawanie PROC

 push esi

 lea esi, arg1

 add dword ptr [esi], ebx
 adc dword ptr [esi+4], 0
 adc dword ptr [esi+8], 0

 pop esi
  ret

dodawanie endp
[/code]

Pozdrawiam
Technical Details
Message-ID: <522d608b$0$1229$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!news.glorb.com!news-out.readnews.com!transit3.readnews.com!nx02.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>

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!news.glorb.com!news-out.readnews.com!transit3.readnews.com!nx02.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>
Subject: Re: Konwersja dużych liczb
Date: Mon, 9 Sep 2013 07:45:24 +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: 127
Message-ID: <522d608b$0$1229$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.7.9.94
X-Trace: 1378705548 unt-rea-b-01.news.neostrada.pl 1229 83.7.9.94:2775
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit