es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

MIPS no puede leer mi archivo .txt al búfer.

Llevo bastante tiempo intentando hacer funcionar este código. ¿Alguien puede explicarme por qué el búfer permanece vacío después de la llamada al sistema? El archivo .txt, el archivo .asm y mars.jar están todos en el mismo directorio. He intentado especificar una ruta completa al archivo, pero eso tampoco funcionó.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es difícil diagnosticar el problema sin ver el resto del código, pero según el código proporcionado, parece que el buffer se está llenando correctamente con el contenido del archivo. Sin embargo, el código no hace nada con el buffer después de leer del archivo.

    Si quieres imprimir el contenido del buffer para verificar que se llenó correctamente, puedes agregar el siguiente código después de la llamada al sistema de lectura:

    li $v0, 4   # llamada al sistema para imprimir una cadena
    la $a0, buffer  # dirección del buffer a imprimir
    syscall
    

    Esto imprimirá el contenido del buffer en la consola.

    Si sigues teniendo problemas, podría ser útil agregar manejo de errores a tu código para ver si alguna llamada al sistema está fallando. Por ejemplo, podrías agregar el siguiente código después de cada llamada al sistema:

    bgez $v0, success  # si v0 >= 0, entonces la llamada al sistema fue exitosa
    li $v0, 17   # llamada al sistema para imprimir un entero
    move $a0, $v0   # imprimir el valor de retorno de la llamada al sistema fallida
    syscall
    

    Esto imprimirá el valor de retorno de cualquier llamada al sistema fallida.

    ¡Espero que esto sea útil!

Comments are closed.