Gast
#48484
Hi, gibt's vielleicht 'nen "kleinen, netten Trick" um 'ne 16Bit-Zahl durch 128 zu dividieren? Oder reicht 7x LSL aus? Aber geht das auch über zwei Register hinweg?!? Danke schonmal! :-) Sebastian
|
Anzeige
|
16Bit duch 128 teilen
Gast
#48484
Hi, gibt's vielleicht 'nen "kleinen, netten Trick" um 'ne 16Bit-Zahl durch 128 zu dividieren? Oder reicht 7x LSL aus? Aber geht das auch über zwei Register hinweg?!? Danke schonmal! :-) Sebastian
Gast
#48485
beim Atmel? am besten nach links schieben, dann musst Du nur einmal schieben pro Register. Wenn Du Deinen 16-Bit-Wert durch 128 teilst, bleiben noch 9 Bit mit Daten übrig, die 7 obersten Bits sind 0. Angenommen in R0/R1 ist Dein Wert, das Ergebnis soll nach R2/R3: clr R3 lsl R0 ;MSB R0 geht ins Carry lsl R1 ;Carry nach LSB von R1, R1 left-shift, MSB ins Carry lsl R3 ;Carry in LSB von R3 mov R2,R1 ;untere 8 Bit in R2 kopieren Musst Du aber selbst noch testen ... sollte aber problemlos laufen. Viele Grüße, Stefan Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|