el_33 Δημοσ. 26 Μαϊου Share Δημοσ. 26 Μαϊου Έχω γράψει αυτόν τον κώδικα σε mips Και θελω να μου εκτυπώνει τα 5 πρώτα γράμματα από όσα δηλωθούν. Όμως δεν δουλεύει, μπορείτε να μου πείτε τι έχω κάνει λάθος; .text .globl __start _start: li $v0, 4 la $a0, p syscall li $v0, 8 la $a0, buffer li $a1, 100 syscall li $v0, 4 la $a0, output syscall la $a0, buffer li $a1, 5 li $v0, 4 syscall li $v0, 10 syscall .data p: .asciiz "Enter a string: " buffer: .space 100 output: .asciiz "\nThe first five characters are: " Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
hawkpilot Δημοσ. 26 Μαϊου Share Δημοσ. 26 Μαϊου Σου βγάζει κάποιο μήνυμα λάθους? Δώσε περισσότερες λεπτομέρειες. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
el_33 Δημοσ. 26 Μαϊου Μέλος Share Δημοσ. 26 Μαϊου Όχι δεν βγάζει κάποιο λάθος αλλά απλά εκτυπώνει όλα τα γράμματα εισάγω πχ το abcdefghij και εκτυπώνει πάλι αυτό ενώ εγώ θέλω το abcde μόνο Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
hawkpilot Δημοσ. 26 Μαϊου Share Δημοσ. 26 Μαϊου Δε γνωρίζω assembly MIPS αλλά νομίζω το πρόβλημα βρίσκεται στο ότι δεν έχεις βάλει το NULL (chr 0) στην έκτη θέση μνήμης του buffer. Το system call 4 περιμένει null terminated string, εσύ περνάς παράμετρο 5 για το μήκος αλλά δε νομίζω ότι δουλεύει έτσι. Χρησιμοποίησε εντολή για να αντικαταστήσει τη θέση μνήμης buffer + 5 με 0. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα