Forum: Mikrocontroller und Digitale Elektronik 2 Cycle-Delay: warum rjmp stat nop?


von Dietmar (Gast)


Lesenswert?

Warum steht in manchen Programmen:

_asm__ __volatile_
(
    "rjmp 1f\n 1:" // 2 cycles
);

statt:

_asm__ __volatile_
(
    "nop\n"
    "nop\n"
);

von Johnny B. (johnnyb)


Lesenswert?

Wenn Du öfters den Source ausdruckst, dann spart die erste Variante 
Papier und Farbe.

von avr (Gast)


Lesenswert?

Dietmar schrieb:
> asm_ __volatile_
>
> (
>
>     "rjmp 1f\n 1:" // 2 cycles   aber nur 1 Befehl
>
> );
>
>
>
> statt:
>
>
>
> asm_ __volatile_
>
> (
>
>     "nop\n"  // 2 Befehle
>
>     "nop\n"
>
> );


Spart Speicher!

avr

von Karl H. (kbuchegg)


Lesenswert?

Vermutung:
ein rjmp ist atomar und kann nicht durch einen Interrupt unterbrochen 
werden.

von (prx) A. K. (prx)


Lesenswert?

Dietmar schrieb:

>     "rjmp 1f\n 1:" // 2 cycles

Platzverbrauch: 1 Wort.

>     "nop\n"
>     "nop\n"

Platzverbrauch: 2 Worte.

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
Noch kein Account? Hier anmelden.