Hallo Forum! wie kann man einen wert in asm dritteln? möchte einen wert mit 1,3periodisch multiplizieren hab in der suche nichts gefunden danke! thomas
Hallo, kommt auf die nötige Genauigkeit an... Schnellversion (wenn ich mich nicht verheddert habe. ;)) 1,3333 * 128 ist rund 171 Also Wert * 171 (bei 8Bit-Wert also schön mit MUL Ergibnis jetzt /128, also erst /256 -> oberstes Byte des Ergebnisses, jetzt * 2 -> lsl, im Register (und C) steht das Ergebnis. Gruß aus Berlin Michael
Kommt darauf an, in welchem Format der Wert vorliegt. Integer, FixedPoint oder Float? Ein 16-bit Beispiel: 12345 * 1,3333333 = 16460 12345 Wert 3086 Wert / 4 771 Wert / 16 192 Wert / 64 48 Wert / 256 12 Wert / 1024 3 Wert / 4096 ------ 16457 Ergebnis Die binäre Darstellung von 1,33333333 ist 1.010101010101010101 x StellenWert=1/256 = 0,00390625 addieren, da 1 x 1/128 = 0,0078125 nicht addieren, da 0 x 1/64 = 0,015625 addieren, da 1 x 1/32 = 0,03125 nicht addieren, da 0 x 1/16 = 0,0625 addieren, da 1 x 1/8 = 0,125 nicht addieren, da 0 x 1/4 = 0,25 addieren, da 1 x 1/2 = 0,5 nicht addieren, da 0 x 1/1 = 1 addieren, da 1 Oder Du nimmst eine 16x16 Multiplikationsroutine und rechnest 12345 + (12345*21845 / 65536) = 16459
> 1,3333 * 128 ist rund 171 Sorry, falsch gelesen, ich bin von 0,33 ausgegangen und hatte mich auf die Schnelle verheddert. Daher ist meine Aussage: > oder fmul mit 43 natürlich Quatsch... ...
Wie genau soll es sein? x + x/4 + x/16 - x/128 = 1.3046875 => 0.3% x + x/4 + x/16 - x/128 - x/256 = 1.30078125 => 0.06%
vielen Dank an alle! hat mir sehr weitergeholfen! fmul kannte ich noch nicht, muß ich mir noch genauer ansehen es soll ein 12bit wert mit 1,3per multipliziert werden das lsb darf falsch sein muß mir jetzt nur noch überlegen welche lösung am einfachsten ist mfg thomas
ATMEL hat Appnotes zu den Multiplikationsbefehlen. ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.