qtspim неизвестный системный вызов: 40?

когда я попытался запустить этот код, выскочили два окна и сказали

неизвестный системный вызов: 40

а также

неизвестный системный вызов: 42

Подозреваю, что дело не в самих системных вызовах, но тоже не уверен. Это мой первый раз, когда я пишу на языке ассемблера MIPS, поэтому, пожалуйста, дайте мне знать, если я что-то не так сделал в приведенном ниже коде.

.data

line1:    .asciiz     "Enter a maximum number"
line2:    .asciiz     "Enter a seed"
line3:    .asciiz     "Enter a guess"
line4:    .asciiz     "NO"
line5:    .asciiz     "YES"

.text
.globl main



main:

li $v0, 4
la $a0, line1        
syscall                        # output line 1

li $v0, 5                   
syscall

move $s0, $v0        # User input moved to s0



li $v0, 4
la $a0, line2                # output line 2     
syscall

li $v0, 5   
syscall    

move $s1, $v0    # User input moved to s1




li $v0, 40         # Creating a seed for the random number generator with user input
add $a0, $zero, 0       
add $a1, $zero, $s0
syscall




li $v0, 42         # Creating the random number generator with user input
add $a0, $zero, 0 
add $a1, $zero, $s1
syscall

move $s2, $a1  




li $v0, 1
move $a0, $s2
syscall


li $v0, 10
syscall


person killderich111    schedule 15.10.2019    source источник
comment
Используйте MARS, в нем больше системных вызовов.   -  person Erik Eidt    schedule 15.10.2019


Ответы (1)


Spim — это ограниченное количество системных вызовов: http://students.cs.tamu.edu/tanzir/csce350/reference/syscalls.html поэтому при использовании spim использование чего-либо вне их не сработает.

В симуляторе Марса больше вызовов: http://courses.missouristate.edu/kenvollmar/mars/help/syscallhelp.html, среди которых есть системные вызовы 40 и 42.

Поэтому, если вы хотите использовать эти системные вызовы, вы должны использовать симулятор mars.

person lostbard    schedule 15.10.2019