Article View: pl.comp.lang.asm
Article #2249Re: moja zagadka
From: yesma
Date: Fri, 16 Jul 2010 17:38
Date: Fri, 16 Jul 2010 17:38
52 lines
2471 bytes
2471 bytes
identifikator: 20040501 pisze: > Przeczytaj np. to "Division by Invariant Integers using Multiplication", > metody tam opisane są stosowane w gcc. > > nie da rady, to kosmiczny angielski, ja wymiękam, > może Ktoś by się zlitował i mi napisał o co chodzi z tym mnożeniem? > Mogę Ci podać przykład ale jak to dokładnie działa nie wiem wiem tylko że kluczowe są tu magic_numbers gdzieś je znalazłem . Jak liczba np bajtowa jest podzielna przez 5 to magic jest 0xcd dwubajtowa 0xcccd, sprawdziłem dla dzielenia przez 10 i działa. Tyle że jak spawdzałem dla podzielnej przez 2 to mi coś nie wyszło oczywiście z innym magic, tutaj masz działający przykład ; mnozenie zamiast dzielenia przez 10, ;word liczba na ascii dziesiętnie mov cx, 0xcccd ror ecx,16 ;ror bo będę w ecx trzymał ;dwie liczby dwubajtowe mov ax,12345 ;tą liczbę wyświetlimy w konsoli w ascii xor rbx,rbx .loop: shl rbx,8 ;do rbx ładuje liczbę dziesiętną w ascii ;zamiast rbx możesz użyć pamięci xor dx,dx mov cx,ax ror ecx,16 mul cx ror ecx,16 shr dx,3 mov ax,dx shl dx,1 ror eax,16 ;w eax też dwie dwubajtowe liczby mov ax,dx shl dx,2 add dx,ax sub cx,dx ror eax,16 or cl,30h mov bl,cl test ax,ax jnz .loop mov [char],rbx sys_write 1,char,8 Regards - Grzechu Linux x86_64
Technical Details
Message-ID:
<i1q5fo$b88$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<hs6oc9$ngl$1@mx1.internetia.pl><20100510163100.526c8fd1.wojciech_mula@poczta.null.onet.pl.invalid><hs9i5q$qkh$1@mx1.internetia.pl><20100510230603.74d5ff46.wojciech_mula@poczta.null.onet.pl.invalid><hsbv6n$mhi$1@mx1.internetia.pl> <20100511214444.fa4a4873.wojciech_mula@poczta.null.onet.pl.invalid> <i1q1s3$n11$1@mx1.internetia.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: yesma <yesma@false.pl> Newsgroups: pl.comp.lang.asm Subject: Re: moja zagadka Date: Fri, 16 Jul 2010 19:38:15 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 52 Message-ID: <i1q5fo$b88$1@inews.gazeta.pl> References: <hs6oc9$ngl$1@mx1.internetia.pl><20100510163100.526c8fd1.wojciech_mula@poczta.null.onet.pl.invalid><hs9i5q$qkh$1@mx1.internetia.pl><20100510230603.74d5ff46.wojciech_mula@poczta.null.onet.pl.invalid><hsbv6n$mhi$1@mx1.internetia.pl> <20100511214444.fa4a4873.wojciech_mula@poczta.null.onet.pl.invalid> <i1q1s3$n11$1@mx1.internetia.pl> Reply-To: yesma@false.pl NNTP-Posting-Host: user14-095.satfilm.net.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1279301944 11528 77.91.14.95 (16 Jul 2010 17:39:04 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Fri, 16 Jul 2010 17:39:04 +0000 (UTC) X-User: yesma User-Agent: Mozilla-Thunderbird 2.0.0.24 (X11/20100329) In-Reply-To: <i1q1s3$n11$1@mx1.internetia.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit