[MIPS] Wie realisier ich das?

11/16/2014 19:16 ohnoesimnoob#1
Hallo Leute,
hatte gehofft, mir könnte hier jemand weiterhelfen.. Würde in MIPS gerne das folgende realisieren:
a und b sind User eingaben, diese zwei abzurufen und in t0 und t1 zu speichern bereitet mir das größte Problem, den Rest würde ich evtl hinbekommen denken ich....
Code:
get a;
get b;
t0 = a;
t1=b;
t2=  betrag von b;
t3= b / t2;
t4= a;
While(t2>1){
t2= t2-1;
t0= t0+t4;
}
t0= t0* t3;
return t0;
das ganze ist jetzt Pseudocode,natürlich, aber ich hoffe jemand kann mir helfen :(
11/16/2014 22:15 .Infinite#2
Hast du dir den Code von [Only registered and activated users can see links. Click Here To Register...] überhaupt mal angeguckt?

Da passiert in den ersten Paar Zeilen genau das was deiner Aussage nach für dich hierbei das schwerste ist:

Quote:
Originally Posted by .Infinite View Post
Code:
li $v0, 5		# syscall 5 - Eingabe einer Ganzzahl, Rückgabewert in $v0
syscall
	
move $t0, $v0		# Rueckgabewert nach $t0 verschieben
Abgesehen davon wäre es schön zu wissen, was das Programm hinterher machen soll. Werde aus deinem Code nicht so richtig schlau.

Edit: Soll das die Russische Bauernmultiplikation sein?
11/16/2014 22:16 ohnoesimnoob#3
ja aber wie hol ich mir den 2. integer? das ist der punkt den ich nicht versteh. den syscall wiederholen und move $t1,$v0 geht ja nich.

zumindest crasht mir mit mars dann die komplette java umgebung, die dann meinen pc crashen lässt.

EDIT: kp, soll a*b = sign(b) + des ganze als summe ausdrücken
11/16/2014 22:25 .Infinite#4
Klar geht das.
Code:
li $v0, 5		# syscall 5 - Eingabe einer Ganzzahl, Rückgabewert in $v0
syscall
move $t0, $v0		# Rueckgabewert nach $t0 verschieben

li $v0, 5		# syscall 5 - Eingabe einer Ganzzahl, Rückgabewert in $v0
syscall
move $t1, $v0		# Rueckgabewert nach $t1 verschieben
11/17/2014 01:05 Yo123#5
Code:
.text
.globl main
main:
li $v0, 5		
syscall
move $t0, $v0		

li $v0, 5		
syscall
move $t1, $v0		
abs $t2, $t1
div $t3,$t1,$t2
add $t4,$0,$t0
Loop:
beq $t2,1,end
sub $t2,$t2,1
add $t0,$t0,$t4
j Loop
end:
mul $t0,$t0,$t3
li $v0,1
move $a0,$t0
syscall
bitch plys