0

你好我需要这个错误的帮助,我有以下代码,我在 sw 和 lw 中得到了错误

ingresar :    .asciiz "Ingresa un numero entero \n"
esPrimo :     .asciiz "El numero ingresado es primo \n"
noPrimo :     .asciiz "El numero ingresado no es primo \n"

num:          .space 64

.text                        # imprimir mensaje inicial
main: li $v0, 4              #cargar 4 en v0
      la $a0, message_ini    # imprimir el mensaje inicial
      syscall                # llamada al sistema

      add $v0,$zero,$zero    #zero a v0

      #imprimir ingeso de numero
      li $v0,4               #cargar 4 a v0
      la $a0, ingresar       #imprimir el mensaje de ingresar un numero
      syscall                # llamada al sistema

      #leyendo el entero ingresado
      li $v0,5           #cargar 5 a v0
      syscall                #llamada al sistema

      #Guardar en la variable
      sw $v0, num($zero)     #Guardar el numero insertado en la variable num

      add $s2, $zero, $zero  # Agregar cero a S2
      lw $s0, num($zero)     #cargar numero en S0
      addi $t0, $zero, 1     #adiciona 1 a $t0  
      addi $t3, $zero, 2     #adiciona 2 a la variable t3 para controlar el if

for:  sle $t1, $t0, $s0      #verficar si el contador es menor que le valor insertado
      beq $t1, $zero, fim_for#si no es menor que el valor realizar salto

if:   rem $t2, $s0, $t0      #dividir s0 por t0 y almacenar el resto de la division en t2
    bne $t2, $zero, j_for#verificar si el resto de la division dio 0
    addi $s2, $s2, 1     #en caso afirmativo agregar al contador uno mas

j_for:  addi $t0, $t0, 1     #agrega uno al contador del for
    j for

fim_for:bne $s2, $t3, respNao       #verifica si solo hay dos dividores para el numero

  #imprimir mensaje si es primo
    li $v0,4
    la $a0, esPrimo
    syscall
    j finalProg

  #imprimir mensaje no es primo
respNao:li $v0,4
    la $a0 noPrimo
    syscall 

finalProg:jr $ra
4

0 回答 0