Hilfe bei 2 ARM Befehlen.

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren