No puedo entender por qué experimento un error en este código de lenguaje ensamblador MIPS que encontré en YouTube

CorePress2024-01-24  8

Esta pregunta ya tiene respuestas aquí: ¿Es "jr $ra" ¿Se requiere finalizar un programa en lenguaje ensamblador MIPS? (¡MARS y QtSpim se comportan de manera diferente!)

(2 respuestas)

Cerrado

hace 2 años

.

Lo he intentado todo, por favor explícalo en detalle también. ¿Por qué me encuentro con este problema? Estoy aprendiendo a codificar en ensamblador.

.text
.globl main
main:
    li $t0, 10
    li $t1, 0
    li $t2, 17
loop:
    beq $t1, $t0, end 
    add $t2, $t2, $t1
    addi $t1, $t1, 1
    j loop
end:
    syscall

2

Cuando escribes un error, lo siguiente que aparece en tu teclado debería ser el mensaje de error exacto que estás viendo. Cuando escribe este problema, lo siguiente debería ser una descripción clara y completa de ese problema. No has proporcionado ninguno de los dos aquí y no has hecho ningún tipo de pregunta específica. Descubrirá que sus experiencias aquí serán mucho mejores si dedica algún tiempo a realizar el recorrido y leer las páginas del centro de ayuda para aprender cómo funciona el sitio antes de comenzar a publicar.

- Ken White

27/03/2021 a las 18:17



------------------------------------

La respuesta que buscas es bastante simple. En primer lugar, todo lo que tienes que hacer es agregar la siguiente línea: li$v0, 10 encima de la línea de llamada al sistema.

Explicación: Déjame explicarte en detalle. Verás, mips tiene 32 registros. lo que hace syscall es que ejecuta el código cargado en el registro: $v0. lo que te has perdido es exactamente esto. tienes que guardar 10 en él ya que es el código para "Terminar la ejecución"

Espero que esto resuelva tu problema. ¡SALUDOS!

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare