www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM7 Assembler Befehlskombinationen


Autor: Peter Pippinger (uncle-sam7)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Pippinger (uncle-sam7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marcus,

hast Du bitte evtl. noch einen Link parat?

Danke,
Peter

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Pippinger (uncle-sam7)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Pippinger (uncle-sam7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, Kommando zurück. ldrb funktioniert. Hat sich erübrigt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.