Gibt es eine schnellere Möglichkeit bei einem 8051-Controller insgesamt 32 Bits zu schieben? Entweder wird eine 1 (SETB C) geschoben, oder eine 0 (CLR C). SETB C ; (1) MOV A, Result ; (1) RLC A ; (1) MOV Result, A ; (1) MOV A, Result+1 ; (1) RLC A ; (1) MOV Result+1, A ; (1) MOV A, Result+2 ; (1) RLC A ; (1) MOV Result+2, A ; (1) MOV A, Result+3 ; (1) RLC A ; (1) MOV Result+3, A ; (1)
Wieso? Da sieht man doch genau, was passiert. Bei einem Museumsprozessor ist das so ;-)
Kakadu schrieb: > Bei einem Museumsprozessor ist das so ;-) wie schieben denn nicht Museumsprozessoren ? Besser gesagt Controller !
#define result0 r0 #define result1 r1 #define result2 r2 #define result3 r3 sec; (1) rol result0; (1) rol result1; (1) rol result2; (1) rol result3; (1) ;-)
@ Kakadu Du kennst weder die Befehle der 8051er-Controller, noch hast du das Problem verstanden. Was soll dein "Code"?
Es gibt keinen optimalen Befehlssatz. Jeder MC hat Stärken und Schwächen. Versuch mal auf nem AVR ne logisch Verknüfpung zu machen: OUT0 = IN0 AND NOT(IN1) in 8051 Assembler ganz einfach:
1 | mov c, p0.1 |
2 | anl c, /p1.3 |
3 | mov p2.7, c |
Peter
>Ist der auch aus dem Museum ? Noch nicht, es wird aber schon Platz gemacht. Ich hätte ja auch schreiben können: ROXL.L result; Aber ich weiß nicht mehr, wie man das X auf 1 bringt ;-) >Du kennst weder die Befehle der 8051er-Controller, noch hast du das >Problem verstanden. Das kann ich so nicht bestätigen. Bei einer Akku-Maschine muß halt alles durch den Akku gehen. Sei froh, dass Du Dein result nicht über @DPTR ansprechen mußt.
Hi Martin, hole Dir mal das DB vom C8051F365, da gibt es was... MAC0 also contains a 1-bit arithmetic shifter that will left or right-shift the contents of the 40-bit accumulator in a single SYSCLK cycle. Figure 11.1 shows a block diagram of the MAC0 unit and its associated Special Function Registers. Da der auch mit 98MHz (1Takt Core) arbeitet ist auch das manuelle schieben schnell erledigt. Der MC kostet so um 6€. Mit Gruß Pieter
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.