Ich versuche, etwas zu programmieren, das ständig eine ganze Zahl von dem Benutzer einnimmt und den Mindestwert in $ s2 speichert.If-Else mit verschachtelt Wenn in MIPS-Assembly
Dies ist ein C-Code-Darstellung von dem, was ich versuche,
if ($s2 == 0)
$s2 = $t0
else {
if ($t0 < $s2)
$s2 = $t0
}
Im Grunde zu tun, lud ich $ s2 mit Null außerhalb der Eingangsschleife. Dies prüft, ob $ s2 Null hat, und setzt es auf die aktuelle (erste) Benutzereingabe ($ t0), da dies der Minimalwert ist. Wenn $ s2 keine Null mehr enthält, prüft es die neue Benutzereingabe anhand dessen, was bereits in $ s2 ist und ob es kleiner als der neue Mindestwert ist.
Wie kann ich dies in MIPS-Assembly implementieren?
Ich habe das so weit (das ist das Endstück einer Schleife namens lesen), aber alles was es tut ist, wenn ich die erste int drücken, springt es bis zum Ende und druckt die min ohne Schleife über.
read:
...
beq $s2, $zero, LOAD
slt $s6, $t0, $s2
bne $s6, $zero, LOAD
j read
LOAD:
li $s2, 0
addu $s2, $s2, $t0