Ich versuche, den MIPS-Code von Summing Integer aus dem Benutzer zu schreiben, bis Benutzer das Zeichen "*" eingeben.Exit vom Hinzufügen von Ganzzahl-Schleife mit einem Zeichen
Ausgang mögen "1 4 3 * Insgesamt wurden 8"
ich den Code Abschlussschleifenbedingung geschrieben, wenn Benutzer gibt "-1" anstelle von "*". Ich habe versucht, '*' Syntax statt -1 zu schreiben, aber es gibt nicht die Summe. Wie kann ich die Schleife verlassen, wenn der Benutzer ein Zeichen "*" eingibt? Das war meine erste Frage und hier ist mein Arbeitscode für "-1".
# $s0=Sum, $s1=Checkvalue
.data # Data memory area
prompt: .asciiz "Total: "
.text # Code area
main:
move $s0, $zero # Sum is made "0"
li $s1, -1 # Checkvalue is made "-1"
loop: bne $s0, $s0, exit # Infinite loop is described
li $v0, 5 # Read integer into $v0
syscall # Make the syscall read_int
move $t0, $v0 # Move the integer read into $t0
beq $t0, $s1, exit # If the read value is equal "-1", exit
add $s0, $t0, $s0 # Add the read integer to sum
j loop # Return loop
exit:
li $v0, 4 # Syscall to print string
la $a0, prompt
syscall
move $a0, $s0 # Syscall to print string
li $v0, 1
syscall
li $v0, 10 # Syscall to exit
syscall
# Reference: www.es.ele.tue.nl/~heco/courses/ProcDesign/SPIM.ppt
Meine zweite Frage ist, dass ich „SYSCALL“ verwendet wird, ist meine Nutzung geeignet für stdin und stdout, Systemfunktionen?
Vielen Dank.
Danke. Ich habe eine neue Frage zu diesem [hier] geschrieben (http://stackoverflow.com/questions/36296223/comparting-two-strings-in-mips) – bieaisar