Προς το περιεχόμενο

Assembly mips κώδικας


el_33

Προτεινόμενες αναρτήσεις

Έχω γράψει αυτόν τον κώδικα σε 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: "
 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όχι δεν βγάζει κάποιο λάθος αλλά απλά εκτυπώνει όλα τα γράμματα εισάγω πχ το abcdefghij και εκτυπώνει πάλι αυτό ενώ εγώ θέλω το abcde μόνο

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δε γνωρίζω assembly MIPS αλλά νομίζω το πρόβλημα βρίσκεται στο ότι δεν έχεις βάλει το NULL (chr 0) στην έκτη θέση μνήμης του buffer. Το system call 4 περιμένει null terminated string, εσύ περνάς παράμετρο 5 για το μήκος αλλά δε νομίζω ότι δουλεύει έτσι. Χρησιμοποίησε εντολή για να αντικαταστήσει τη θέση μνήμης buffer + 5 με 0.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...