
Untitled
By: a guest on
Jul 10th, 2012 | syntax:
None | size: 1.07 KB | hits: 16 | expires: Never
#include "asm_regnames.h"
.text
.globl entry
entry:
jal readdec
add s0,zero,v0
jal readdec
add a0,zero,v0
schleife:
beq a0,s0,ausgabe
beqz a0,ausgabe
schleifeA:
sub s1,s0,a0
bltz s1,schleifeB
sub s0,s0,a0
b schleife
schleifeB:
sub a0,a0,s0
b schleife
ausgabe:
add a0,zero,s0
jal writedec
--------------------------------------------------------------
#include "asm_regnames.h"
.text
.globl entry
entry:
li s0,5 #s0 gibt aktuelle zahl an, (hier 5)
die multipliziert werden soll, bzw.
als abbruchbed.
addi t1,zero,1
# link vorbereiten
sub sp,sp,8
sw ra,8(sp)
sw s0,4(sp)
jal sum
# wiederherstellen
lw ra,8(sp)
lw s0,4(sp)
addi sp,sp,8
add t0,s0,t0 #in t0 gespeichert
jr ra
sum:
beq t1,s0,exit
sub s0,s0,1
# Prepare link
sub sp,sp,8
sw ra,8(sp)
sw s0,4(sp)
jal sum
exit:
# wiederherstellen
lw ra,8(sp)
lw s0,4(sp)
addi sp,sp,8
add t0,t0,s0 # hier mul (lenz)
jr ra