я нашел this possible solution , но это дает мне что-то вроде:Генерация случайного числа на MIPS
598756802
373297426
-2011171535
Это походит на его печать скорее Адресная значение числа. Как это исправить?
Также мне нужно установить диапазон для генератора. Как генерировать случайное число от 0 до 99.
Как я мог это сделать?
Наблюдение: Уже пробовали с syscall 42
код, но у меня есть ошибка.
(OFF: По крайней мере, объясните причину нисходящего хода, у меня нет хрустального шара).
код:
.text
li $v0, 41 # Service 41, random int
syscall # Generate random int (returns in $a0)
li $v0, 1 # Service 1, print int
syscall # Print previously generated random int
обновление И это всегда дает мне такое же число, 1000
.
.text
li $a1, 2501
li $v0, 42 #random
add $a0, $a0, 1000
li $v0, 1
syscall
«не показывает никаких исследовательских усилий» (или мышления) ... здесь есть масса ресурсов, которые рассказывают вам, как получить случайное число в диапазон. Тривиальное (хотя и статистически не идеальное) решение состоит в том, чтобы просто делить на 100 и взять остаток. PS: да, цифры, которые вы напечатали **, являются ** случайными числами, не уверен, почему вы думали иначе. – Jester
@Jester Я попробовал чувак, но теперь он работает, он всегда дает мне что-то вне диапазона ИЛИ всегда такое же число ... – PlayHardGoPro
Для обновленного кода вы забыли вызвать «syscall»;) – Jester