Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .globl main
- main:
- la $t0, array # load base address of array
- move $s0, $t0 # save base address for later on
- Fill: jal pread # read integer
- move $t1,$v0 # save it in $t1
- sw $t1, ($t0) # save integer in array element
- add $t0, $t0, $t0 # double index
- add $t0, $t0, $t0 # double index again (*4)
- beq $t0, 12($t0) , Sum # wenn bei 12 angekommen, springe zu Sum
- jal Fill # sonst fuelle erneut
- Sum: la $t0, $s0 # load base address of array
- Loop lw $t2, 0($t1) # get the value from the array cell
- add $s2, $t2 # calculate the sum
- add $t0, $t0, $t0 # double index
- add $t0, $t0, $t0 # double index again (*4)
- beq $t0, 12($t0) , pwrite # wenn bei 12 angekommen, springe zu pwrite
- jal loop # sonst addiere
- Exit: li $v0,10 #Exit
- syscall
- # pread -- prompt for and read an integer
- # on entry:
- # $ra -- return address## on exit:
- # $v0 -- the integer
- .text
- .globl pread
- pread: la $a0,prompt1 # print string
- li $v0,4 # service 4
- syscall
- li $v0,5 # read int into $v0
- syscall # service 5
- jr $ra # return
- pwrite:
- la $a0,prompt2 # print string
- li $v0,4 # service 4
- syscall
- move $a0, $s2 # restore from $s2 to $a0
- li $v0,1 # read int into $v0
- syscall # service 1
- jal Exit # return to Exit
- nop #
- nop #
- .data
- array: .space 16 #1 byte = 4 word = 4 integer
- prompt1: .asciiz "Enter an integer: "
- prompt2: .asciiz "The sum is: "
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement