			.text
			.globl main
main:	
			addiu $a0, $zero, 5 # Initialisiere Argumentregister
			jal fact 		# Aufruf der Fakultätsprozedur
			move $a1, $v0	# Fakultätsresultat nach $a1
			j ende
fact:		addi 	$sp, $sp, -8 		# Reserviere Stackplatz für zwei Einträge
				sw 		$ra, 4($sp) 		# Sichere Rücksprungadresse
				sw 		$a0, 0($sp)			# Sichere Argumentregister
				slti 	$t0, $a0, 1			# Teste, ob arg < 1
				beq 	$t0, $zero, L1	# Falls arg >= 1, goto L1
				addi 	$v0, $zero, 1		# return 1
				addi 	$sp, $sp, 8 		# Entferne Stackelement
				jr 		$ra							# Rücksprung
L1:	 		addi 	$a0, $a0, -1 		# arg >= 1, dekrementiere um 1
				jal 	fact						# rekursiver Aufruf von fact
				lw 		$a0, 0($sp)		 	# restauriere $a0 von Stack
				lw 		$ra, 4($sp)			# restauriere $ra
				addi  $sp, $sp, 8			# Entferne Stackelemente
				mul 	$v0, $a0, $v0		# return arg * fact (arg-1)
				jr 		$ra							# Rücksprung 		
ende: 	
