Gast
#2790510
Hallo, ich suche nach einer 24bit/16bit Divisionroutine in Assembler. Es soll nur einfache Register r0-r15 genutzt. In Google finde ich nichts. Hat jemand vielleich Qullkode?
|
Anzeige
|
24bit/16bit Divisionroutine in Assembler
Gast
#2790510
Hallo, ich suche nach einer 24bit/16bit Divisionroutine in Assembler. Es soll nur einfache Register r0-r15 genutzt. In Google finde ich nichts. Hat jemand vielleich Qullkode?
Gast
#2790515
Schau mal hier: Beitrag "Division von STD_LOGIC_VECTOR" Das geht auch in ASM In [1] ist eine 16/8 Division mit Rest. Das von 16/8 auf 24/16 zu erweitern ist trivial: bei Dividend, Divisor, Quotient und Rest kommt eben 1 Byte hinzu. Ausserdem geht der Algorithmus davon aus, daß das MSB des Divisors 0 ist. War in dem Beitrag bekannt. Erweiterung für Divisoren mit MSB = 1 erfordert 2 zusätzliche Befehle (Hausaufgabe). Beitrag "Re: 16-Bit Zahl durch eine Konstante dividieren (Assembler)" http://elm-chan.org/cc_e.html#avrasm Muss man evtl. ein wenig anpassen ... Gruß Jobst Alex schrieb: > Hallo, ich suche nach einer 24bit/16bit Divisionroutine in Assembler. Atmel Appnote AVR200 hat Divisionsroutinen in verschiedenen Breiten. Wenn du die erstmal verstanden hast, kannst du beliebige Breite implementieren. > Es soll nur einfache Register r0-r15 genutzt. PUSH/POP existieren. Oft ist es notwendig/sinnvoll, das Z-Register freizuräumen und im Algo zu benutzen. XL Axel Schwenke schrieb: >> Es soll nur einfache Register r0-r15 genutzt. > > PUSH/POP existieren. Oft ist es notwendig/sinnvoll, das Z-Register > freizuräumen und im Algo zu benutzen. Im Code schreibt man auch nie feste Register hin, sondern benutzt Definitionen (Register-Renaming). Z.B. benutze ich A0..n für den ersten Operanden, B0..n für den 2., T0..n für Zwischenwerte, I0..n für Loop-Counter. Welche Register das dann wirklich sind, legt man zentral für das Projekt fest. Peter http://www.mikrocontroller.net/articles/AVR_Arithmetik#Weblinks wenn es um AVR Assembler geht, das ist oben nicht klar zu sehen. die gute alte Math32-Bibliothek von Andre Birua (von 2003) ist immer noch zu finden. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|