Forum: Mikrocontroller und Digitale Elektronik ARM: Startup


von Gast (Gast)


Lesenswert?

Hallo Leute,

in den Startup von Keil finde ich die nächsten Anweisungen:

AREA   STACK, DATA, READWRITE, ALIGN=2
        DS   (USR_Stack_Size+3)&~3  ; Stack for User/System Mode
        DS   (SVC_Stack_Size+3)&~3
        .
        .

Kann mir jemand erklären was die Anweisung: "DS   (USR_Stack_Size+3)&~3" 
bedeutet? und besonders wieviel ist "(USR_Stack_Size+3)&~3", wenn 
USR_Stack_Size=4 ist????

Danke im voraus

von gast (Gast)


Lesenswert?

4+3=7
0111

~3
1100

 0111
&1100
-----
 0100=4

von Gast (Gast)


Lesenswert?

Danke sehr.
Aber was ist denn der Vorteil von der Schreibweise? Es geht acuh 
einfacher und schneller: " DS   USR_Stack_Size" // USR_Stack_Size = 4

von Andreas K. (a-k)


Lesenswert?

Jo, aber wehe eine Schnarchnase kommt dann auf die Idee, 
USR_Stack_Size=50 täte es eigentlich auch.

von Juergen (Gast)


Lesenswert?

Das rundet auf das nächste Vielfache von 4 auf (Stichwort Alignment).

Jürgen

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.