kettes osztas shiftelessel

VF vf at elte.hu
Sun Jan 12 21:50:31 CET 2003


Thus spake Istvan Retaller:

> Nincs mit, jo pillanatban kerdezted. En sem tudom soha, hogy van ez.
> Egy honap mulva megint elfelejtem, aztan allhatok neki ujra felfedezni,
> hogyan is kell ezt csinalni. Szerencsere most eppen lebegopontos aritmetikat
> irok, igy nyakig benne vagyok ;)))

Van nehany algoritmus amit jo tudni, de speciel ezt en is elfelejtettem.
Igaz, hogy ezt sohasem kodoltam le assemblyben, csak binaris osztast
csinaltam.

> Halat nem csak elvi okokbol nem kuldtem, hanem mert nem PIC-re, hanem AVR-re
> irom.

En szinten... M68k-ra, AVR-re, sot 6510-re (C64) megvan, PIC-re nem
csinaltam meg. Mar nem is nagyon fogom, nem nagyon fogok mar picet
programozni, ha csak ra nem kenyszeritenek.

Az algoritmust leirom pontosan. Tehat bitenkenti egesz osztas.

0. Inicializalas, munkaterulet kinullazasa, szamlalo beallitasa
1. Balra forgatassal behozod a szamlalo kovetkezo bitet a munkaterulet
   legalso bitebe (LSB)
2. Kivonod belole a nevezot. Ha atvitel keletkezett, goto 3b!
3a. Balra forgatassal egy 1 bitet teszel az eredmeny LSB-be, goto 4!
3b. Balra forgatassal egy 0 bitet teszel az eredmeny LSB-be, majd
    hozzaadod a nevezot a munkaterulethez
4. Vegeztunk? (szamlalot es nevezot vegig feldolgoztuk?) Ha nem, goto 1!

Hat ennyi... Mondtam, ugyanaz mint irasban. Az a kulonbseg, hogy irasban
dekadonkent osztunk (mint az en AVR programom), ezert minden egyes jegyet
egy kulon osztassal kapunk meg, itt ezt egy kivonas helyettesiti, mert
vagy 0-szor, vagy 1-szer lehet csak meg benne.
Esetleg ha akarod, a 8 bites osztast megirom pic-re, de kiprobalni mar
nem tudom sajna. Tobb bitre ugyanez...

> Üdv, RI

-- 
Valenta Ferenc <vf at elte.hu>   Visit me at http://ludens.elte.hu/~vf/
"More Cavinton, more info"





More information about the Elektro mailing list