.file "aufgabe1.S"
.text
.align 2
.global main
.type main,function
main:
@ args = 0, pretend = 0, frame = 12
@ frame_needed = 1, uses_anonymous_args = 0
LDR R0, LittleEndian // Lesen des Wert unter LittleEndian
bl func
STR R0, BigEndian // Speichern des Ergebnis unter BigEndian
func:
push {lr}
MOV R1, R0, ROR#8
LDR R2, AWert
AND R0, R0, R2
AND R1, R1, R2
ORR R0, R1, R0, ROR#24
pop {pc}
AWert:
.word 0xFF00FF00
LittleEndian:
.word 0x12345678
BigEndian:
.word 0x0
.Lfe1:
.size main,.Lfe1-main
.file "aufgabe2.S"
.text
.align 2
.global main
.type main,function
main:
@ args = 0, pretend = 0, frame = 12
@ frame_needed = 1, uses_anonymous_args = 0
MOV R0, #5 // Belegen des Registers R0 mit dem dezimalen Wert 5
RSB R3, R0, R0, LSL#4 // R3 = (R0*16)-R0
MOV R0, R3, LSL#4 // Multipliziere R3 mit 16 und schreibe das Ergebnis in R0
MOV R0, #5 // Belege Register R0 mit dem dezimalen Wert 5
RSB R0, R0, R0, LSL#9 // R0 = (R0*512)-R0
MOV PC, LR
.Lfe1:
.size main,.Lfe1-main