Продолжайте получать Попытку выполнить не-инструкцию в 0x00400098 - PullRequest
0 голосов
/ 07 октября 2019
.data
scores : .word 84 99 92 45 55 46 78 67 79
arraySize : .word 9
prompt1: .asciiz "Pleaes input a passing score(between 0 and 100) : "
prompt2: .asciiz "The number of students who passed this course is : "
.text

main:
li $v0,4
la $a0,prompt1 #it will print prompt
syscall
li $v0,5
syscall #ask user input
move $s2,$v0 #move to s2
la $s0,scores #get user address
lw $s1,arraySize #get array size

li $t7,0 #store passed count

li $t0,0
loop:
mul $t1,$t0,4
add $t1,$t1,$s0
lw $t1,($t1)
blt $t1,$s2,skipCount
add $t7,$t7,1 #increase count by one
skipCount:
add $t0,$t0,1
blt $t0,$s1,loop #loop until i<size


li $v0,4
la $a0,prompt2 #it will print prompt
syscall
li $v0,1
move $a0,$t7
syscall

Этот код предназначен для определения количества баллов, равных или превышающих проходной балл. Он спрашивает пользователя о проходной балл, а затем дает номер.

то есть, если список оценок: 84, 99, 92, 45, 55, 46, 78, 67, 79

Если проходной балл равен 60, то ответ равен 6. Однако, когда я завершаю его, он дает мне правильный ответ, за которым следует «Попытка выполнить не-инструкцию в 0x00400098»

Что происходит?

...