Есть довольно мало ошибок
- Вы используете
la $t1, count
, который загружает адрес счета, но не его значение (6). - Вы пытаетесь сохранить возврат чтения пользовательского ввода еще до того, как это произошло.
- Вкл.
exit
Вы пытаетесь загрузить символ number
, но этого не существует.
Также ваш алгоритм не имеет особого смысла, но вы не слишком понимаете, какова ваша цель, поэтому я не могу это исправить.
Код с исправлениями:
# arrayCount.asm
.data
arrayA: .word 11, 3, 4, 5, 6, 7
count: .word 6
.text
main:
# code to setup the variable mappings
la $t0, arrayA
lw $t1, count # fix #1
# code for reading in the user value X
li $v0, 5
syscall # fix #2
move $t3, $v0
# code for counting multiples of X in arrayA
addi $t4, $zero, 0 #number
start:
beq $t1, $zero, exit
lw $t6, 0($t0)
and $t5, $t3, $t6
addi, $t1, $t1, -1
la $t0, 4($t0)
beq $t5, $zero, update
j start
update:
addi $t4, $t4, 1
j start
# code for printing result
exit:
li $v0, 1
move $a0, $t4 # fix #3
syscall
# code for terminating program
li $v0, 10
syscall