Jak zaimplementować 32-bitowe dzielenie całkowite na PIC 18F bez instrukcji dzielenia?
32 bitowe dzielenie calkowite
From: Dawid Pawlata <dawidpawlata_at_nospam_wp.pl>
Subject: 32 bitowe dzielenie calkowite
Date: Wed, 13 Apr 2005 22:57:28 +0200
Witam,
od paru dni zastanawiam sie jak to szybko wykonac na procku nie
posiadajacym instrukcji dzielenia, konkretnie PIC 18F, ktory chyba jeden
z niewielu z tej rodziny ma przynajmniej mnozenie dwoch 8 bitowych liczb.
Kombinowalem ze zwyklym dzieleniem na kartce, tyle, ze na bitach i
wlasciwie zrobilbym to, jednak chcialbym sie wczesniej upewnic, czy nie
istnieje jakis szybszy sposob.
Chodzi mi glownie o idee, chociaz jesli ktos dysponuje jakims kodem, to
byloby jeszcze lepiej. W ksiazkach o mikrokontrolerach ktore posiadam o
autorzy nawet nie wspominaja nic na ten temat.
pozdrawiam
DP
From: "Krzysztof" <jr_utausunto_at_nospam_wp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Thu, 14 Apr 2005 00:05:59 +0200
"Dawid Pawlata" <dawidpawlata_at_nospam_wp.pl> napisał(a):
Witam,
od paru dni zastanawiam sie jak to szybko wykonac na procku nie
posiadajacym instrukcji dzielenia, konkretnie PIC 18F, ktory chyba jeden z
niewielu z tej rodziny ma przynajmniej mnozenie dwoch 8 bitowych liczb.
Kombinowalem ze zwyklym dzieleniem na kartce, tyle, ze na bitach i
wlasciwie zrobilbym to, jednak chcialbym sie wczesniej upewnic, czy nie
istnieje jakis szybszy sposob.
Chodzi mi glownie o idee, chociaz jesli ktos dysponuje jakims kodem, to
byloby jeszcze lepiej. W ksiazkach o mikrokontrolerach ktore posiadam o
autorzy nawet nie wspominaja nic na ten temat.
http://massmind.org/techref/microchip/math/div/index.htm
--
pozdrawiam
K.
From: Dawid Pawlata <dawidpawlata_at_nospam_wp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Thu, 14 Apr 2005 07:11:43 +0200
Krzysztof wrote:
"Dawid Pawlata" <dawidpawlata_at_nospam_wp.pl> napisał(a):
Witam,
od paru dni zastanawiam sie jak to szybko wykonac na procku nie
posiadajacym instrukcji dzielenia, konkretnie PIC 18F, ktory chyba
jeden z niewielu z tej rodziny ma przynajmniej mnozenie dwoch 8
bitowych liczb.
Kombinowalem ze zwyklym dzieleniem na kartce, tyle, ze na bitach i
wlasciwie zrobilbym to, jednak chcialbym sie wczesniej upewnic, czy
nie istnieje jakis szybszy sposob.
Chodzi mi glownie o idee, chociaz jesli ktos dysponuje jakims kodem,
to byloby jeszcze lepiej. W ksiazkach o mikrokontrolerach ktore
posiadam o autorzy nawet nie wspominaja nic na ten temat.
http://massmind.org/techref/microchip/math/div/index.htm
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.
W kazdym razie dzieki.
--
pozdrawiam
DP
From: "szlovak" <BEZXadamkx_at_nospam_o2.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Thu, 14 Apr 2005 16:20:12 +0000 (UTC)
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.
W kazdym razie dzieki.
Na microchip.com jest. Może da się zastąpić to dzielenie mnożeniem
przez odwrotnosć? czasem daje się coś uprościć i mnozyć zamiast dzielić
--
Pozdrawiam
Adam
From: Dawid Pawlata <dawidpawlata_at_nospam_wp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Fri, 15 Apr 2005 08:20:46 +0200
szlovak wrote:
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.
W kazdym razie dzieki.
Na microchip.com jest. Może da się zastąpić to dzielenie mnożeniem
przez odwrotnosć? czasem daje się coś uprościć i mnozyć zamiast dzielić
Niestety raczej nie, poniewaz nie znam argumentow, moga byc dowolne.
Poza tym ta sa liczby calkowite.
--
pozdrawiam
DP
From: "Jacek R. Radzikowski" <jacek_at_nospam_spamer.die.die.die.piranet.org>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Fri, 15 Apr 2005 06:53:29 +0000 (UTC)
Dawid Pawlata <dawidpawlata_at_nospam_wp.pl> wrote:
szlovak wrote:
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.
W kazdym razie dzieki.
Na microchip.com jest. Może da się zastąpić to dzielenie mnożeniem
przez odwrotnosć? czasem daje się coś uprościć i mnozyć zamiast dzielić
Niestety raczej nie, poniewaz nie znam argumentow, moga byc dowolne.
Poza tym ta sa liczby calkowite.
Do liczenia odwrotnosci modulo liczba calkowita masz rozszerzony algorytm
euklidesa. Powinno sie go dac latwo zaimplementowac, choc wydajnosciowo
moze to nie byc najlepszy pomysl
pzdr.
j.
From: "szlovak" <BEZXadamkx_at_nospam_o2.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Fri, 15 Apr 2005 08:24:55 +0000 (UTC)
Niestety raczej nie, poniewaz nie znam argumentow, moga byc dowolne.
Poza tym ta sa liczby calkowite.
No to musi procek liczyć. Na marginesie, całkowitość liczb niczego nie
zmienia prawie, FLOAT32 nie różni się prawie niczym od dzielenia 24/24
i 32/32 z tym tylko że dochodzi wykładnik i malutkie manewry z mantysą
i wyjątkami.
--
Pozdrawiam
Adam
From: "T.M.F." <tfrancuz_at_nospam_nospam.mp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Thu, 14 Apr 2005 21:37:49 +0200
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.
Len z ciebie. A szybciej niz przesuwac bity i odejmowac to sie nie da.
Tu masz link:
http://www.piclist.com/techref/microchip/math/32bmath-ph.htm?key=32%2Dbit+division&from=%2Ftechref%2Fmicrochip%2Fmath%2Fdiv%2Fdiv16or32by16to16%2Ehtm
--
Inteligentny dom - http://idom.wizzard.one.pl
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz sie do projektu.
From: Dawid Pawlata <dawidpawlata_at_nospam_wp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Fri, 15 Apr 2005 08:23:55 +0200
T.M.F. wrote:
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.
Len z ciebie. A szybciej niz przesuwac bity i odejmowac to sie nie da.
Tu masz link:
http://www.piclist.com/techref/microchip/math/32bmath-ph.htm?key=32%2Dbit+division&from=%2Ftechref%2Fmicrochip%2Fmath%2Fdiv%2Fdiv16or32by16to16%2Ehtm
Dzieki, tej stronki nie widzialem. Chociaz metoda jest wlasciwie taka
sama. W koncu dzielenie na kartce sprowadza sie wlasnie do przesuwania i
odejmowania. W kazdym razie jest gotowy kod!
Dzieki
--
pozdrawiam
Dawid Pawlata