			.text
			.globl main
main:	
					la 	$a1, source     	# Initialisiere Argumentregister
					la 	$a0, sink
					jal 	strcpy 							# Aufruf der Kopierprozedur
					li  	$v0, 4							# Ausgabe des kopierten Strings
					la 	$a0, sink
					syscall
					li  	$v0, 10  						# Terminiere Programm
					syscall
			
strcpy: 	addi 	$sp, $sp, -4 		# Schaffe Platz für ein Stackelement
					sw 		$s0, 0($sp) 		# Sichere Register $s0
					add		$s0, $zero, $zero 	  # $s0 <- 0
L1:				add		$t1, $s0, $a1					# $t1 <- Adresse von source[i]  
					lb 		$t2, 0($t1)						# $t2 <- source[i]
					add		$t3, $s0, $a0					# $t3 <- Adresse von sink[i]  
					sb 		$t2, 0($t3)						# $t2 -> sink[i]
					beq 	$t2, $zero, L2				# Falls Nullzeichen, nach L2
					addi 	$s0, $s0, 1 		    	# $s0 <- $s0 + 1 (i <- i+1)
					j 	  L1
L2:				lw 		$s0, 0($sp)			# Restauriere Register $s0
					addi 	$sp, $sp, 4			# Lösche Wort vom Stack	
					jr		$ra							# Rücksprung					
						
			.data
source:
					.asciiz  "This is an example string."
sink: 		.space 30

