Dokumente und Mars-Simulator

This commit is contained in:
Riwoldt
2025-03-26 09:10:55 +01:00
parent 85f594994e
commit 4501819ac9
73 changed files with 1064 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
###############################################################################
##### Beispielcode fuer den Aufruf eines Unterprogramms #####
##### mit Uebergabe- und Rueckgabewerten #####
##### Folgender High-Level-Code wird in Mips-Assembler uebersetzt: #####
###############################################################################
##### int main () #####
##### { #####
##### int y; #####
##### ... #####
##### y = diffofsum (2,3,4,5); #####
##### ... #####
##### } #####
##### int diffofsums (int f, int g, int h, int i) #####
##### { #####
##### int result; #####
##### result = (f+g)-(h+i); #####
##### return result; #####
##### } #####
###############################################################################
main:
# Laden der f,g,h,i in die Uebergaberegister a0-a3
addi $a0, $zero, 2
addi $a1, $zero, 3
addi $a2, $zero, 4
addi $a3, $zero, 5
# Aufruf der Unterprozedur diffofsum, Speichern der Ruecksprungadresse in $ra
jal diffofsums
# Benutzen des Rueckgabewertes, der in $v0 liegt, $s0 = y
add $s0, $v0, $zero
# exit
li $v0, 10
syscall
####################### Unterprogramm diffofsums ##############################
diffofsums:
add $t0, $a0, $a1 # t0 = f+g
add $t1, $a2, $a3 # t1 = h+i
sub $t2, $t0, $t1 # s0 = (f+g)-(h+i)
add $v0, $t2, $zero # v0 = result
jr $ra # Ruecksprung
####################### Ende des Unterprogramms diffofsums ####################
###############################################################################
## Dieser Beispielcode fuer den Aufruf eines Unterprogramms wurde dem Buch ##
## Digital Design & Computer Architecture von Harris & Harris entnommen ##
###############################################################################