πρακτορας Δημοσ. 21 Μαρτίου 2013 Δημοσ. 21 Μαρτίου 2013 Καταρχην καλησπερα και καλως σας βρηκα λοιπον εχω αυτην την ασκηση και θελω βοηθεια Να γραφτει συναρτηση που θα υπολογιζει το γινομενο δυο ακεραιων . το θεμα ειναι οτι δεν μπορω να χρησιμοποιησω την εντολη του πολαπλασιασμου διοτι δεν την εχουμε μαθει ακομη εγω μεχρι στιγμης εω γραψει αυτο αν και πιστευω οτι ειναι τελειως λαθος ... .textmain: addi $t0, $zero, 5sw $t0, 0($gp)addi $t1, $zero, 6sw $t1, 4($gp)addi $t2,$zero,0sw $t2 ,8($gp) jal ffli $v0,10syscall ff:addi $sp,$sp,-12sw $ra, 4($sp)sw $a0, 0($sp)bne $t2,$t1,Exitaddi $t0, $t1, $t0sw $t0, 0($gp)addi $t2, $t2,1sw $t2, 8($gp)
πρακτορας Δημοσ. 22 Μαρτίου 2013 Μέλος Δημοσ. 22 Μαρτίου 2013 εχω γραψει και αυτο .textmain: li $t0, 0 li $t1, 0 li $t2,3 li $t3,4jal ff ff: add $t1, $t2, $t3 bne $t0,3,Exit exit: li $v0, 10 syscall
nilosgr Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Αν θες να κανείς πολλαπλασιασμό χωρίς την εντολή mul (ή παρόμοιες της), πρέπει να τον κανείς δημιουργώντας ένα loop στο οποίο θα κανείς τον αλγόριθμο του πολλαπλασιασμού με διαδοχικές προσθέσεις και ολισθησεις. Δες και το βιβλίο του Patterson, δεύτερο ή τρίτο κεφάλαιο είναι. Τα εξηγεί πολύ αναλυτικά και κατανοητά και για πολλαπλασιασμό και για διαίρεση. Επίσης αν θες μπορείς να εφαρμόσεις και τον αλγόριθμο του booth
πρακτορας Δημοσ. 22 Μαρτίου 2013 Μέλος Δημοσ. 22 Μαρτίου 2013 Βασικά θα πρεπει να κάλω μια συναρτηση,, γενικά οτι έχω ποσταρει λέει τίποτα η είναι για πέταμα?
nilosgr Δημοσ. 22 Μαρτίου 2013 Δημοσ. 22 Μαρτίου 2013 Μάλλον για πέταμα είναι... (εκτός κι αν βάζεις κομμάτι του κώδικα κι όχι όλον). Λοιπόν, θα σ δώσω ψευδοκώδικα με τον αλγόριθμο του πολλαπλασιασμού που κάνουμε στο δημοτικό και προσπάθησε να το υλοποιήσεις σε mips. Είσοδος: $a0 ο πολλαπλασιαστεος $a1 ο πολλαπλασιαστής Έξοδος: $v0 το γινόμενο Βήμα 1: $v0 = 0, $t9 = 0, $t0 = 0 Βήμα 2: βάλε στον $t0 το λιγότερο σημαντικό bit του $a1 Βήμα 3: Αν $t0 > 0 τότε $v0 = $v0 + $a0 Βήμα 4: Δεξιά ολίσθηση του $a1 κατά 1 bit Βήμα 5: Αριστερή ολίσθηση του $a0 κατά 1 bit Βήμα 6: $t9 = $t9 + 1 Βήμα 7: Αν $t9 < 32 τότε πήγαινε στο Βήμα 2
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα