#+ BITTE NICHT MODIFIZIEREN: Vorgabeabschnitt
#+ ——————————————
.data
str_Eingabe: .asciiz “Eingabe: ”
str_Rueckgabewert: .asciiz “\nRueckgabewert: ”
str_Ausgabe: .asciiz “\nAusgabedaten:”
rle_compressed_output_buf: .space 100
.text
.eqv SYS_PUTSTR 4
.eqv SYS_PUTCHAR 11
.eqv SYS_PUTINT 1
.eqv SYS_EXIT 10
.globl main
main:
# Eingabezeichenfolge anzeigen:
li $v0, SYS_PUTSTR
la $a0, str_Eingabe
syscall
la $a0, str_test_input
syscall
# Aufruf der zu testenden Funktion rle:
la $a0, str_test_input
la $a1, rle_compressed_output_buf
jal rle
# Rueckgabewert anzeigen:
move $t0, $v0
li $v0, SYS_PUTSTR
la $a0, str_Rueckgabewert
syscall
li $v0, SYS_PUTINT
move $a0, $t0
syscall
# Ausgabedaten anzeigen:
li $v0, SYS_PUTSTR
la $a0, str_Ausgabe
syscall
la $t0, rle_compressed_output_buf
_main_output_loop:
lb $t1, 0($t0)
lb $t2, 1($t0)
or $t3, $t1, $t2
beqz $t3, _main_output_endloop
li $v0, SYS_PUTCHAR
li $a0, ‘ ‘
syscall
li $a0, ‘(‘
syscall
li $a0, ‘\”
syscall
move $a0, $t1
syscall
li $a0, ‘\”
syscall
li $a0, ‘,’
syscall
li $v0, SYS_PUTINT
move $a0, $t2
syscall
li $v0, SYS_PUTCHAR
li $a0, ‘)’
syscall
addi $t0, $t0, 2
j _main_output_loop
_main_output_endloop:
# Programmende
li $v0, SYS_EXIT
syscall
#+ BITTE VERVOLLSTAENDIGEN: Persoenliche Angaben zur Hausaufgabe
#+ ————————————————————-
# Vorname:
# Nachname:
# Matrikelnummer:
#+ Loesungsabschnitt
#+ —————–
.data
str_test_input: .asciiz “BBBBBZZABB”
.text
rle:
# Funktion rle bitte hier implementieren.
jr $ra