www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe bei 2 ARM Befehlen.


Autor: Krikus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

in der Berufschule sind wir gerade bei dem Thema ARM, und sollen ein 
kleines Programm schreiben.
In einem Beispiel Programm stehen 2 Befehle, welche ich nicht verstehe.
Könnte mir einer diese Befehle vllt. kurz erläutern:

1. Befehl
MOV R9, R1, LSR #3

2. Befehl
LDR R0, =0x20 // Lädt den dezimalen Wert 32 in R0
RSB R0, R0, LSL#8

Vielen Dank für die Hilfe.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Könnte mir einer diese Befehle vllt. kurz erläutern

Ja, schau in Deinem Unterichtsmaterial nach!

Oder such ein ARM-Manual mit Befehlssatzbeschreibung.

Da gibt es im Internet eine Suchmaschine, damit kommst Du weiter:

    http://www.google.de

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Krikus wrote:

> 1. Befehl
> MOV R9, R1, LSR #3

R9 = R1 / 8

http://www.heyrick.co.uk/assembler/mov.html#mov
http://www.heyrick.co.uk/assembler/shift.html#lsr

Trick: R1, LSR #3 ist ein "Flexible second operand"
http://infocenter.arm.com/help/topic/com.arm.doc.d...

> 2. Befehl
> LDR R0, =0x20 // Lädt den dezimalen Wert 32 in R0

http://www.heyrick.co.uk/assembler/str.html#ldr
bringt einen nicht weiter.

R0 = 0x00000020

http://infocenter.arm.com/help/topic/com.arm.doc.d...

Trick: Es ist eine "LDR pseudo‑instruction". Findet man in 
Referenzkarten zum Befehlssatz manchmal nicht

> RSB R0, R0, LSL#8

http://www.heyrick.co.uk/assembler/mov.html#rsb
http://www.coranac.com/tonc/text/asm.htm
http://infocenter.arm.com/help/topic/com.arm.doc.d...

Trick: R0, LSR #3 kann ein "Flexible second operand" sein
http://infocenter.arm.com/help/topic/com.arm.doc.d...

ABER ich vermute, dass diese Zeile nicht vollständig ist. Es kann das 
Zielregister fehlen, der erste Operand oder ein Teil vom zweiten 
Operanden.

Im vorletzten Link ist das Zielregister als optional gekennzeichnet 
({Rd}), darüber habe ich aber nichts weiter gefunden.

Sicher gültig wäre es mit einem weiteren Register z.B.

RSB R0, R1, R2, LSL#8

R0 = (R2 << 8)  - R1

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan "stefb" B. wrote:
> Krikus wrote:
>
>> RSB R0, R0, LSL#8
>
> ABER ich vermute, dass diese Zeile nicht vollständig ist. Es kann das
> Zielregister fehlen, der erste Operand oder ein Teil vom zweiten
> Operanden.
>
> Im vorletzten Link ist das Zielregister als optional gekennzeichnet
> ({Rd}), darüber habe ich aber nichts weiter gefunden.

Thumb, bzw. UAL (Unified Assembler Language).

Gruß
Marcus
http://www.doulos.com/arm/

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.