[F] 8051-Controller 32 Bit schieben

Gast #2032043
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)
Gast #2032160
#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)

;-)
Gast #2032222
>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.
Gast #2032339
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.