[F] 8051-Controller 32 Bit schieben

Gast #2032043
Lesenswert?

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 #2032222
Lesenswert?

>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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren