Stránka 1 z 1
delenie v assemblery
Napsal: 24 lis 2008, 16:41
od Specnac
Nazdar
Neviete nahodov ako mam napisat program na delenie dvoch binárnych cisiel v assembleri ? Dakujem za pomoc
P.S: myslim assembler pre PIC16F84A
Napsal: 24 lis 2008, 16:52
od Ragnol
pomocí příkazů asembleru ...
je to celočíselný nebo reálny , jak velký jsou ty čísla ...
Napsal: 24 lis 2008, 16:54
od mihal
O ake delenie mas zaujem? Celym cislom (2-8) je to len posun v pravo. U delenia byte:byte je to uz horsie, ak chces aj s desatinnymi miestami..
A preco prave v ASM? Ked v C mas na to kniznice?
Napsal: 24 lis 2008, 17:02
od Specnac
Pretoze neviem ako C previest na ASM

Takto. programujem program pre SOCku v assemblery a o ostatnom nemam ani paru... potrebujem cislo zo suboru vydelit 60timi. Cislo v subore bude 63 - 120.
Napsal: 24 lis 2008, 20:19
od Zmije
Napadlo mě udělat cyklus a v něm odčítat dělitele od dělence, dokud nebude rozdíl < dělitel, počet průchodů cyklem je celá část a to měnší než dělitel je zbytek, ale asi jsou na to fígle s bit. operacemi.
Napsal: 24 lis 2008, 21:33
od Split
Napsal: 24 lis 2008, 22:02
od Specnac
Zmije: loooooooooooooooool tak toto ma vazne napadlo

a pritom to je fakt jednoduche

diki moc. potrebujem obcas nakopnut
Split: aj hento vyzera zaujimavo musim sa na to ale lepsie pozriet a uvidim co je lepsie. dakujeem

Napsal: 24 lis 2008, 22:43
od Zmije
To víš, my sklerotici, co si do teď nezapamatovali násobilku, to hold musíme umět spočítat na prstech

Napsal: 25 lis 2008, 08:50
od piitr
Specnac píše:Pretoze neviem ako C previest na ASM

Takto. programujem program pre SOCku v assemblery a o ostatnom nemam ani paru... potrebujem cislo zo suboru vydelit 60timi. Cislo v subore bude 63 - 120.
Nevím, jestli to dobře chápu, ale za těchto podmínek bude podíl 2 pro 120 a 1 pro všechny ostatní případy. Mělo by stačit jedno porovnání.
Napsal: 25 lis 2008, 11:13
od ZdenekHQ

To mě napadlo hned po přečetní toho dotazu, ale myslel jsem, že je to spíš blbej vtip...
Snad potřebuje nějaký to desetinný místo, pak si 120 vyjádří např. na 16 bitech jako 12000 a dělí 60 s tím, že na tohle jsou standartní rutiny v ASM a výsledek je o kuličku přesnější. Na 32 bitech je to ještě lepší. Rutiny mám, ovšem pro 51.
Napsal: 25 lis 2008, 12:49
od piitr
No jo, to je fakt.

To je možný, že potřebuje desetinná místa. Jenže zase po(s)tupné odečítání se mu líbí, což je pro tenhle případ dost blbý řešení. Kdo ví, o co jde. Možná autor sám neví, což by napovídala ta zkratka SOČ.
Napsal: 25 lis 2008, 17:40
od Zmije
Právě pro případ, kdy je dělenec malý násobek dělitele, se dá ještě postupné odečítání považovat za celkem optimální, ale pokud to bude chtět na více desetinných míst, tak je určitě lepší použít jinou metodu, jedno porovnání je určitě nejlepší, ale když si vemu, že porovnání se ve vetšině asm implementuje jako odečtení porovnávaných čísel a nazakladě výsledku znaménka se rozhodne větší/menší příp. pro 0 rovnáse, tak je to vlastně stejná metoda, spíš záleží jaké možnosti má instrukční sada konkrétního procesoru, já pic nikdy neprogramoval a vím jen, že je to risc, takže má třeba oproti padině dost ochuzenou instrukční sadu.