Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data # data section
- prompt1: .asciiz "Summand eingeben: "
- prompt2: .asciiz "Summe: "
- prompt3: .asciiz "Wie viele Summanden moechten Sie eingeben? "
- .text # text section
- .globl main # call main by SPIM
- main:
- li $t0,0 # initialize t0 - offset
- li $s0,0 # initialize s0 (result)
- li $s1,4 # 4
- li $v0,4 # print string service
- la $a0,prompt1 # write("Wie viele Summanden moechten Sie eingeben?")
- syscall
- li $v0,5 # read integer service
- syscall
- move $s2,$v0 # Summand in $s2 schieben
- mulo $s3,$s1,$s2 # Array-Ende
- move $a0,$s3 # gewuenschte Groesse in $a0 schieben
- li $v0,9 # Speicher anfordern
- syscall
- move $s4,$v0 # Array Start in $s4 speichern
- move $t0,$s4 # Array Start nun in $t0
- loop1:
- bgt $t0, $s3, filled # jump if t0>12
- li $v0,4 # print string service
- la $a0,prompt1 # write("Summand eingeben: ")
- syscall
- li $v0,5 # read integer service
- syscall
- sw $v0, dataarray($t0) # store word v0 into A($t0)
- addi $t0,4 # adjust offset
- j loop1 # jump to loop1
- filled:
- li $t0,0 # initialize t0 - offset
- loop2:
- bgt $t0, $s3, done # jump if t0>12
- lw $t2, dataarray($t0) # load a value from the array to t2
- add $s0, $s0, $t2 # add t2 to the result
- addi $t0,4 # adjust offset
- j loop2 # jump to loop2
- done:
- li $v0,4 # print string service
- la $a0,prompt2 # write("Summe ausgeben: ")
- syscall
- li $v0,1 # print integer service
- move $a0, $s0 # print result
- syscall
- li $v0, 10 # Exit program
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement