Hallo, im Register R24 und R25 liegt eine Word Variable Wie kann ich diesen Wert in Assembler 3 bits nach rechts schieben, das ist ja das gleiche wie Teilen durch 8 Danke.
Eine Angabe um welchen Prozessor/ssembler es geht wäre hilfreich...
Trexis5 schrieb: > Wie kann ich diesen Wert in Assembler 3 bits nach rechts schieben, das > ist ja das gleiche wie Teilen durch 8 Wenn man das Thema signed und unsigned mal aussen vor lässt...
Hi >Wie kann ich diesen Wert in Assembler 3 bits nach rechts schieben, das >ist ja das gleiche wie Teilen durch 8 Einmal schieben: shr r25 ror r24 >Wenn man das Thema signed und unsigned mal aussen vor lässt... Warum? Bei signed wird es zu: asr r25 ror r24 MfG Spess
Spess53 schrieb: > Warum? Weil bei signed und negativen Zahlen dann auch noch dazukommt, in welche Richtung das Ergebnis 'gerundet' werden soll. -5 / 4 wird so zu -2 wenn das ok ist, dann spricht nichts dagegen. Aber eigentlich würde ich erwarten, dass -5 / 4 eine -1 ergibt.
Wenn r25 das Highbyte ist und r24 da Lowbyte, dann sieht das Ganze für einen AVR so aus:
1 | lsr r25 Highbyte rechts-schieben |
2 | ror r24 Lowbyte rechts-schieben mit carry |
3 | lsr r25 ... |
4 | ror r24 ... |
5 | lsr r25 ... |
6 | ror r24 ... |
Hi, super danke so geht es:
1 | $asm |
2 | lds R24, {Test} '/4 |
3 | lds R25, {Test+1} |
4 | |
5 | lsr r25 |
6 | ror r24 |
7 | lsr r25 |
8 | ror r24 |
9 | lsr r25 |
10 | ror r24 |
11 | |
12 | sts {Test} , R24 |
13 | sts {Test+1} , R25 |
14 | $end Asm |
Die Frage ist jetzt ob das schneller ist als wenn ich in Bascom 3 nach rechts schiebe. Was meinst ihr?
Trexis5 schrieb: > Was meinst ihr? Sieh dir doch mal das Listing (oder zur Not das Hex-File) von Bascom an... Eine unglaubliche Altenative wäre Ausprobieren, wenn es nur um eine qualitative Aussage geht...
"Schnell" und "BASCOM" widerspricht sich irgendwie.
@Lothar: Bei BASCOM kann man kein Assembler Listing generieren lassen, soweit ich weiß. Wodurch meine vorherige Aussage unterstützt wird. Wie soll man alleine die Geschwindigkeit ohne Assembler Listing feststellen?
Simon K. schrieb: > Wie soll man alleine die Geschwindigkeit ohne Assembler Listing > feststellen? Stoppuhr nehmen. Die Operation in einer Schleife 5 Millionen mal machen und mitstoppen.
Simon K. schrieb: > @Lothar: Bei BASCOM kann man kein Assembler Listing generieren lassen, > soweit ich weiß. Wodurch meine vorherige Aussage unterstützt wird. Böse Sache.... Dann eben runter aufs Hex-File... ;-)
Na super! Kommt der Chef rein und fragt, was man da mit der Stoppuhr macht ;-) Weiter gefragt: Wenn es zu langsam ist. Wie stellt man dann fest, woran es liegt?
Kommt der Chef rein und fragt: Was machen sie da mit BASCOM?
Danke an Skript Kiddy Karl heinz Buchegger Spess53 melt Die haben nämlich geholfen und nicht irgendwelche kranken Äußerungen abgegeben. Das ist schon unglaublich was es hier für Leute gibt. Ist mir schon oft aufgefallen. Entweder sind die Besoffen oder können nix für ihre Blödheit. Sobald man Bascom schreibt setzt bei vielen das Gehirn aus. Bloß wer sagt das ein selbergestrickter Assembler-code schneller ist, als durchdachte von bestimmt 100mal schlaueren Köpfen gemachten Routinen in Bascom oder C? Hautsache einen Blöden Kommentar absetzten. Ich bemitleide hier die Leute, die sich ehrlich Anstrengen echte Hilfestellungen zu geben. Also danke noch mal an die Leute von Oben, die mir geholfen haben den Code umzusetzen.
Trexis5 schrieb: > Die haben nämlich geholfen und nicht irgendwelche kranken Äußerungen > abgegeben. Da ich nicht in deiner Liste stehe, fühle ich mich angesprochen und ziehe mich damit beleidigt zurück. Allerdings meine ich, keine kranken Äusserungen, sondern durchaus sinnvolle Tipps abgegeben zu haben. Nur wollte ich dir das Denken nicht komplett abnehmen... Seis drum... :-/
Trexis5 schrieb: > Das ist schon unglaublich was es hier für Leute gibt. Ist mir schon oft > aufgefallen. Mir auch, das sind vor allem die, die ausrasten und wild um sich beleidigen wenn man es wagt das heilige BASCOM anzuzweifeln. Oder die, die zu faul sind einfach mal auszuprobieren was langsamer ist. Trexis5 schrieb: > Sobald man Bascom schreibt setzt bei vielen das Gehirn aus. siehe oben Trexis5 schrieb: > nicht irgendwelche kranken Äußerungen > abgegeben. Meiner Meinung nach die einzig kranke Äusserung war die auf die ich mich hier beziehe. Trexis5 schrieb: > Ich bemitleide hier die Leute, die sich ehrlich Anstrengen echte > Hilfestellungen zu geben. Die haben hier meist kein Problem wenn mal eine Äusserung mit kleinem Augenzwinkern dazukommt. Kannst Du auch mal lächeln? Dich hatte hierniemand angegriffen und auch nicht beleidigt, mit Äusserungen wie "Entweder sind die Besoffen oder können nix für ihre Blödheit." bist Du alleine hier im Thread.
Trexis5 schrieb: > irgendwelche kranken Äußerungen Ich sehe hier keine einzige kranke Äußerung. Waren doch recht witzige Kommentare dabei: > Na super! Kommt der Chef rein und fragt, was man da mit der Stoppuhr > macht ;-) > Kommt der Chef rein und fragt: Was machen sie da mit BASCOM? Und es kam noch nicht mal mein persönlicher Favorit von Karl heinz Buchegger: "...die Tante mit aufs Klo geht Lulu machen..." BTW: Ich kann BASCOM AVR auch nicht leiden. Aber jedem wie er es mag oder besser gesagt "versteht". Achja und die beleidigenden Kommentare hättesest du dir voll sparen können. Ich bereue es schon fast dir geholfen zu haben. Skriptkiddy
Hi >Bloß wer sagt das ein selbergestrickter Assembler-code schneller ist, >als durchdachte von bestimmt 100mal schlaueren Köpfen gemachten Routinen >in Bascom oder C? Du kannst ja mal Rechnen. lsr und ror benötigen jeweils einen Prozessortakt. Schneller geht es nicht. MfG Spess
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.