Forum: Mikrocontroller und Digitale Elektronik ARM7 Assembler Befehlskombinationen


von Peter P. (uncle-sam7)


Lesenswert?

Hallo NG,

habe da mal ne Frage zu ARM7 Assembler.

Die Befehle sind mir im Prinzip klar. Wie kann ich allerdings 
herausfinden, welche Befehle "kombiniert" werden können.

Beispiel strb + lsr:
strb   r7, [r6, r8, lsr #8]

was strb + lsr macht ist mir klar. Wo steht, dass man die Befehle so 
verknüpfen kann?

Vielen Dank für jeden hilfreichen Tip.

Viele Grüße und einen guten Rutsch!
Peter

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Peter Pippinger schrieb:
> Beispiel strb + lsr:
> strb   r7, [r6, r8, lsr #8]
>
> was strb + lsr macht ist mir klar. Wo steht, dass man die Befehle so
> verknüpfen kann?

Im Architecture Reference Manual. Man kann auf den zweiten Operanden der 
meisten (einfachen) ALU Befehle, bzw. das Offset-Register vieler 
Load/Store Operationen, eine Shift/Rotate-Operationen anwenden.

Gruß
Marcus

von Peter P. (uncle-sam7)


Lesenswert?

Hallo Marcus,

hast Du bitte evtl. noch einen Link parat?

Danke,
Peter

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

Peter Pippinger schrieb:
> hast Du bitte evtl. noch einen Link parat?

Google? Na ja, heute ist immerhin Neujahr.

https://silver.arm.com/download/download.tm?pv=1073121

--
Marcus

von Peter P. (uncle-sam7)


Lesenswert?

Danke für den Link.

jetzt hätte ich noch ne Frage, weil ich mich noch nicht so recht 
auskenne und schon fast der premature optimation zum Opfer falle :-) :

Kann ich sowas wie:

// get actual opcode
  ldr r5, c64
  and r5, r5, #255

in einen Befehl packen?

der LDR holt in diesem Fall 32Bit von "c64" (Speicher). Wenn ich jetzt 
nur auf den Opcode einegehen möchte, brauche ich ja nur die erste 8Bit. 
Vom Gefühl her würde ich sagen, dass mir die Version mit dem AND als 
zweiter Befehl nicht sehr gut gefällt. Kann man das optimaler 
ausdrücken?

Wiso bekomme ich eigentlich bei ldrb ne Fehlermeldung?
Danke für jeden Tip!

Peter

von Peter P. (uncle-sam7)


Lesenswert?

Sorry, Kommando zurück. ldrb funktioniert. Hat sich erübrigt.

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.