Dokumente und Mars-Simulator
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
###############################################################################
|
||||
# Multipliziert zwei Integerzahlen, zeigt die Verwendung der Register hi, lo #
|
||||
# die benoetigt werden, weil das Produkt von 32-Bit-Zahlen bis zu 64-Bit lang #
|
||||
# wird. Bei der Division wird der Quotient in lo und der Rest in hi abgelegt #
|
||||
###############################################################################
|
||||
|
||||
.data
|
||||
number1: .word 0x0fffffff
|
||||
number2: .word 0x12345678
|
||||
number3: .word 0x01234567
|
||||
.text
|
||||
# Laden der Beispielzahlen in t0, t1, t2
|
||||
lw $t0, number1
|
||||
lw $t1, number2
|
||||
lw $t2, number3
|
||||
|
||||
# Multiplikation
|
||||
mul $t3, $t0, $t1 # Die unteren 32 Bits des Produkts werden in $t3 abgelegt
|
||||
mfhi $s0 # Um auf die oberen 32 Bits zugreifen zu k<EFBFBD>nnen, wird mfhi ben<EFBFBD>tigt
|
||||
mflo $s1 # Fuer den Zugriff auf die unteren 32 Bits des Produkts wird mflo verwendet
|
||||
|
||||
# Division $t0 durch $t1
|
||||
div $t0, $t2 # speichert den Quotienten in lo und den rest in hi
|
||||
mfhi $s2 # holt den Rest der Division aus hi und legt ihn in $s2 ab
|
||||
mflo $s3 # holt den Quotienten aus lo und legt ihn in $s3 ab
|
||||
|
||||
# exit
|
||||
li $v0, 10
|
||||
syscall
|
||||
Reference in New Issue
Block a user