Übung A2.3 - Programmcode

osterhase
Erstie
Erstie
Beiträge: 20
Registriert: 26. Okt 2005 11:57

Übung A2.3 - Programmcode

Beitrag von osterhase »

Wers gebrauchen kann: Hier der Programmcode der A2.3 (ohne die einzusetzenden Stackspeicher-Befehle)

Code: Alles auswählen

.data
.align 2
array: .word 5, 1, 2, 10, 9, 13, 60
len: .word 7
summe: .asciiz "Summe:    "
lnbr: .asciiz "\n"
maxi: .asciiz "Maximum:  "
.globl main
.text
main: subu $sp, $sp, 16
sw $fp, 12($sp)
addiu $fp, $sp, 12
sw $ra, 8($sp)
addi $s0, $zero, 0
addi $s1, $zero, 0
la $t0, len
lw $t0, 0($t0)
la $t1, array
loop:

#....


lw $a0, 0($t1)
add $a1, $zero, $s0
add $a2, $zero, $s1
jal max

#....


add $s0, $zero, $v0
add $s1, $zero, $v1
addi $t0 $t0, -1
addi $t1, $t1, 4
bne $t0, $zero, loop

lw $ra, 8($sp)
lw $fp, 12($sp)
addiu $sp, $sp, 16
j ende

max:


#....


sgt $t0, $a0, $a1
beq $t0, $zero, max_ende
add $a1, $zero, $a0

max_ende:

add $s0, $zero, $a1

#....

add $a1, $zero, $a2
jal sum

#....

add $v1, $zero, $v0
add $v0, $zero, $s0

jr $ra

sum:

#....


add $v0, $a1, $a0


#....
jr $ra


ende:
li $v0, 4
la $a0, maxi
syscall
li $v0, 1
move $a0, $s0
syscall
li $v0, 4
la $a0, lnbr
syscall
li $v0, 4
la $a0, summe
syscall
li $v0, 1
move $a0, $s1
syscall
jr $ra
Gruß, Osterhase

Zurück zu „Archiv“