Menu Close

Rechnerarchitektur (Praktikum 3)

.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

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.