ARM Assembler feat. Geocaching

OP #5566688
Lesenswert?

Hallo lieber Gemeinde,

langsam bin ich etwas ratlos. Ich hänge an einem Assemblercode welcher 
laut des Erstellers doch recht einfach sein soll 
(Grundschulrechenoperationen).

movs r0, #5
movs r1, #3
mov r2, r1
lsls r2, r2, #1
mov r4, r2
mul r3, r4, r2
mul r6, r1, r0
add r6, r6, r3
asrs r4, r3, #1
subs r8, r4, r0
subs r4, r8, r1
mul r5, r4, r6
movs r1, #1
movs r0, #65 ; 0x41
movs r0, #82 ; 0x52
movs r0, #77 ; 0x4d
subs r7, r5, r2
subs r7, r7, r1
mul r4, r4, r2
add r4, r4, r8
mul r9, r4, r5
add r9, r9, r3
lsls r1, r1, #1
add r9, r9, r1

Vielleicht könnt ihr mir ja etwas weiterhelfen. Würde mich über eure 
Unterstützung freuen, bis zum Befehl (mov r2, r1) komme ich aber danach 
ist Schluss, hab ich schon Google bemüht aber irgendwie finde ich 
nichts, oder überlese es.

Vielen Dank
OP #5566835
Lesenswert?

Als Hinweis, gibt es nur Ergebnis in 6-9.

Diese 3 Zeilen

movs r0, #65 ; 0x41 A
movs r0, #82 ; 0x52 R
movs r0, #77 ; 0x4d M

haben dabei geholfen auf ARM zu kommen.
Der ganze Code stammt aus einem Maschinencode welche man in 
assemblercode umwandeln musst:

0500 b0e3 0310 b0e3 0120 a0e1 8220 b0e1
0240 a0e1 9402 03e0 9100 06e0 0360 86e0
c340 b0e1 0080 54e0 0140 58e0 9406 05e0
0110 b0e3 4100 b0e3 5200 b0e3 4d00 b0e3
0270 55e0 0170 57e0 9402 04e0 0840 84e0
9405 09e0 0390 89e0 8110 b0e1 0190 89e0
#5566850
Lesenswert?

Mw E. schrieb:
> Das set flags sieht aus wie ne Nebelkerze, es werden später nie die
> Flags herangezogen.

Das könnte damit zusammenhängen, dass bei Thumb-1 Befehlen keine freie 
Wahl zwischen mit und ohne S besteht. Zwar kann das kein Thumb-1 Code 
sein, aber bei Thumb-2 ist der Befehl in der Variante mit S kürzer, 
sofern als Thumb-1 Befehl codierbar.
(Firma: fritzler-avr.de) #5566861
Lesenswert?

Da haste ja schon richtig Arbeit reingesteckt und den arm-objdump 
gefunden ;)

Also ich hab das mal per Hand durchsimuliert und in r6-r9 kommt doch 
tatsächlich sowas wie ein Breitengrad raus mit viel Nachkommastellen bei 
den Sekunden, sonst findet mans wohl nicht.
Der Breitengrad geht auch durch Deutschkland, so als Nebenprobe.

asrs ist übrigens "arithmetic shift right", aber nimms als normalen 
Rechtsschieber, die Zahl hat kein Vorzeichen.

Wenne soweit bist kann das ja mal verglichen werden.

@prx:
Ja, da war ja was beim Thumb.

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