added all example programs
This commit is contained in:
@@ -44,6 +44,7 @@
|
|||||||
implementiert worden:
|
implementiert worden:
|
||||||
- j
|
- j
|
||||||
- slli
|
- slli
|
||||||
|
- Die Beispielprogramme sind im entsprechenden Verzeichnis.
|
||||||
|
|
||||||
## Dokumentation für den Assembly Code
|
## Dokumentation für den Assembly Code
|
||||||
|
|
||||||
|
|||||||
3
beispielprogramme/1.txt
Normal file
3
beispielprogramme/1.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
addi x1, x0, 5 # x1 = 5
|
||||||
|
addi x2, x0, 10 # x2 = 10
|
||||||
|
add x3, x1, x2 # x3 = x1 + x2 = 15
|
||||||
4
beispielprogramme/2.txt
Normal file
4
beispielprogramme/2.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
addi x1, x0, 42 # x1 = 42
|
||||||
|
addi x2, x0, 100 # x2 = Ad res se 100
|
||||||
|
sw x1, 0(x2) # Speicher[100] = 42
|
||||||
|
lw x3, 0(x2) # x3 = Speicher[100] −> 42
|
||||||
6
beispielprogramme/3.txt
Normal file
6
beispielprogramme/3.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
addi x1, x0, 7 # x1 = 7
|
||||||
|
addi x2, x0, 7 # x2 = 7
|
||||||
|
beq x1, x2, equal # springe nach ’equal’ falls gleich
|
||||||
|
addi x3, x0, 1 # wird uebersprungen
|
||||||
|
equal:
|
||||||
|
addi x3, x0, 99 # x3 = 99
|
||||||
4
beispielprogramme/4.txt
Normal file
4
beispielprogramme/4.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
jal x0, target # Sprung ohne Rueckkehr
|
||||||
|
addi x1, x0, 1 # wird uebersprungen
|
||||||
|
target:
|
||||||
|
addi x2, x0, 2 # x2 = 2
|
||||||
4
beispielprogramme/5.txt
Normal file
4
beispielprogramme/5.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
addi x1, x0, 5 # x1 = 5 (Zaehler)
|
||||||
|
loop:
|
||||||
|
addi x1, x1, −1 # x1 −= 1
|
||||||
|
bne x1 , x0, loop # solange x1 != 0 , wiederhole
|
||||||
8
beispielprogramme/6.txt
Normal file
8
beispielprogramme/6.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
addi x1, x0, 10 # x1 = N = 10
|
||||||
|
addi x2, x0, 1 # x2 = i = 1
|
||||||
|
addi x3, x0, 0 # x3 = Summe = 0
|
||||||
|
loop_sum:
|
||||||
|
add x3, x3, x2 # Summe += i
|
||||||
|
addi x2, x2, 1 # i += 1
|
||||||
|
bne x2, x1, loop_sum # solange i != N, Schleife
|
||||||
|
add x3, x3, x1 # letzte Addition ( i == N)
|
||||||
12
beispielprogramme/7.txt
Normal file
12
beispielprogramme/7.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
addi x1, x0, 7 # x1 = n
|
||||||
|
addi x2, x0, 0 # x2 = F ( 0 )
|
||||||
|
addi x3, x0, 1 # x3 = F ( 1 )
|
||||||
|
addi x4, x0, 0 # x4 = Loop−Register
|
||||||
|
addi x5, x0, 1 # x5 = i
|
||||||
|
loop_fib:
|
||||||
|
add x4, x2, x3 # x4 = F( i ) = F( i −2) + F( i −1)
|
||||||
|
add x2, x3, x0 # x2 = a l t e s F( i −1)
|
||||||
|
add x3, x4, x0 # x3 = neues F( i )
|
||||||
|
addi x5, x5, 1 # i++
|
||||||
|
bne x5, x1, loop_fib
|
||||||
|
# x4 enthaelt jetzt F(7) = 13
|
||||||
25
beispielprogramme/8.txt
Normal file
25
beispielprogramme/8.txt
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
|
||||||
|
# Array liegt ab Adresse 100 ,
|
||||||
|
# Laenge = 5 Elemente ( 4 Byte pro Element )
|
||||||
|
# Ergebnis (Maximum) i n x3
|
||||||
|
# −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
|
||||||
|
addi x1, x0, 100 # x1 = Basisadresse des Arrays
|
||||||
|
addi x2, x0, 5 # x2 = Anzahl Elemente
|
||||||
|
addi x4, x1, 0 # x4 = Laufender Zeiger (ptr) ins Array
|
||||||
|
lw x3, 0(x4) # x3 = erstes Element (initiales Maximum)
|
||||||
|
addi x2, x2, −1 # x2 = verbleibende Elemente
|
||||||
|
loop_max:
|
||||||
|
addi x4, x4, 4 # ptr += 4 (naechstes Element )
|
||||||
|
lw x5, 0(x4) # x5 = aktuelles Element
|
||||||
|
slt x6, x3, x5 # x6 = 1 , wenn x3 < x5
|
||||||
|
bne x6, x0, update # falls neues Element groesser: update
|
||||||
|
cont:
|
||||||
|
addi x2, x2, −1 # naechstes Element ( RemainingCount−−)
|
||||||
|
bne x2, x0, loop_max # wiederhole, solange noch Elemente uebrig
|
||||||
|
# Ende : x3 enthaelt das Maximum
|
||||||
|
j end
|
||||||
|
update:
|
||||||
|
add x3, x5, x0 # x3 = x5 ( neues Maximum)
|
||||||
|
j cont
|
||||||
|
end:
|
||||||
|
# x3 = Maximum
|
||||||
9
beispielprogramme/9.txt
Normal file
9
beispielprogramme/9.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
addi x1, x0, 21 # x1 = 21
|
||||||
|
jal x5, double # Aufruf: ra in x5
|
||||||
|
# nach Rueckkehr enthaelt x6 das Resultat
|
||||||
|
j end
|
||||||
|
double:
|
||||||
|
slli x6, x1, 1 # x6 = x1 << 1 = x1 ∗ 2
|
||||||
|
jalr x0, 0(x5) # Ruecksprung ueber r a
|
||||||
|
end:
|
||||||
|
# x6 = 42
|
||||||
Reference in New Issue
Block a user