Как правильно сохранить ввод в MIPS?

Хотя я пытался ввести другое значение, но Qtspim по-прежнему распечатывает значение «0», и ввод также не сохраняется в регистре, я пытаюсь найти ответ в Интернете, но похоже, что никто не сталкивался с этой проблемой Я работаю с ним 4 часа, ЧУВСТВУЮ, что это меня очень расстраивает. вот мой код, я пытаюсь определить, является ли ввод простым числом или нет.

# Power program
# ----------------------------------
# Data Segment
.data
request:             .asciiz "Enter an integer:"
Yes:                  .asciiz " is  a prime number.\n"
No:                   .asciiz " is not a prime number\n."
End:                 .asciiz"End!\n"
Key:                 .word -1
One:                 .word 1

# ----------------------------------
# Text/Code Segment

.text
.globl  main
 main:
    lw $t1,One
    add $s2,$zero,$zero
    lw $s3,One
    lw   $s0,Key
    add  $s5,$zero,$zero


j   power       # call the function power   

li  $v0, 10     # call code for exit
syscall         # system call
.end main


.globl  power


power:  

       j power_loop



power_loop:    
                   la   $a0, request    # load string request in memory to $a0
                   li   $v0, 4              # print out the string
                    syscall          #prevent Memory address out of bounds
                    li  $v0, 5
                    syscall
                    move $s7,$v0
                    beq $s7, $s0, exit_L    #when input =-1 exit
                    j        Prime                 #otherwise go to define the input whether prime num

Prime:  
       beq $s7,$t1,result   
       div  $s7,$t1
       mthi $t4
       beq  $t4,$zero,count
       addi  $t1,$t1,1
       j       Prime


count:    #counting the number of factors 
      addi $s2,1                            
      addi $t1,$t1,1

result:  addi $t1,$zero,1
       bne  $s2,$s3,resultNo
       beq $s2,$s3,resultYes




resultYes:  li         $v0,1
            move $a0,$s7
             syscall
             add $s2,$zero,$zero
             la      $a0,Yes
             li         $v0,4
              syscall
              j            power_loop
resultNo:    li         $v0,1
             move $a0,$s7
             syscall
             add $s2,$zero,$zero
             la   $a0,No
             li     $v0,4
              syscall
              j       power_loop
exit_L:       
              la    $a0,End
              li    $v0,4
             syscall
              jr       $ra


.end    power

Я не могу воспроизвести описанное вами поведение. Однако, очевидно, что mthi $t4 является ошибкой (должен быть mfhi $t4). И способ подсчета количества чисел, на которые делится $s7, нарушен; на самой первой итерации вы выйдете из цикла, потому что все, что делится на 1, имеет остаток 0. Используйте функции отладки в симуляторе, чтобы проверить поведение вашей программы во время выполнения.

Michael 28.10.2018 10:39

хотя я изменил mthi на mfhi, результат все тот же, что и в прошлом, что бы я ни вводил, он просто представляет 0 - это простое число в консоли, как я могу это исправить?

Eddie.Y.SS 28.10.2018 11:43

похоже, что программа делает мой ввод равным 0

Eddie.Y.SS 28.10.2018 11:45
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
43
0

Другие вопросы по теме