Hilfe bei 2 ARM Befehlen.

Gast #1057616
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.
Persönliche Seite #1058012
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.dui0204i/Cihbeage.html

> 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.dui0204i/Babbfdih.html

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.dui0204i/Cihcjfjg.html

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

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
Persönliche Seite #1058190
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.