########################################################################### # liest zwei Integerzahlen ein, dividiert die erste durch die zweite und # # und gibt das Ergebnis als Gleitkommazahl in doppelter Genauigkeit aus # ########################################################################### .data prompt1: .asciiz "\nBitte die erste Zahl (den Dividenden) eingeben, x = " prompt2: .asciiz "\nBitte die zweite Zahl (den Divisor) eingeben, y = " message: .asciiz "\nDas Ergebnis der Division (der Quotient) ist x : y = " .text # Ausgabe der ersten Nachricht: prompt1 li $v0, 4 # der Wert 4 fuer den syscall bedeutet: print string la $a0, prompt1 # laedt die Adresse des ersten Strings in $a0 syscall # erste Zahl einlesen und im temporaeren Register $t0 ablegen li $v0, 5 # der Wert 5 fuer den syscall bedeutet: read integer syscall move $t0, $v0 # erste Zahl zum Coproc 1 transferieren und konvertieren mtc1.d $t0, $f4 cvt.d.w $f4, $f4 # Ausgabe der zweiten Nachricht: prompt2 li $v0, 4 la $a0, prompt2 syscall # zweite Zahl einlesen und in $t1 ablegen li $v0, 5 syscall move $t1, $v0 # zweite Zahl zum Coproc 1 transferieren und konvertieren mtc1.d $t1, $f6 cvt.d.w $f6, $f6 # Division durchfuehren, Ergebnis in $f12 speichern div.d $f12, $f4, $f6 # Ausgabe der dritten Nachricht: message li $v0, 4 la $a0, message syscall # Ausgabe des Quotienten li $v0, 3 # der Wert 3 fuer den syscall bedeutet: $f12 = double to print syscall # exit li $v0, 10 syscall