Вопрос

Использование MIPS assembly если я предложу пользователю ввести целое число, как я могу затем взять это целое число и разбить его на необходимые части?

Пример:

                 # User inputs a number
li  $v0, 5      # read value of n
    syscall

Затем я сохраняю значение в $ v0 во временном регистре, скажем, $ t0, и мне нужно разбить его на каждую составляющую его часть.Итак, 308 должен быть разбит на:3, 0 и 8.Мне нужно сделать это так, чтобы затем я мог возвести в квадрат каждую из этих частей и сложить их вместе.

Входное значение от пользователя должно быть введено в виде целого числа.

спасибо, ямр

Это было полезно?

Решение

Это ответ @Don's, с изюминкой

$t0 содержит пользовательский ввод.(как правило, без подписи)

li   $t1,10
DIVU $t0,$t1 //divide by 10

mfhi $t2 //t2 contains the division result
mflo $t3 //t3 containts the division remainder

используйте beq, bgt для выполнения сравнений.

Немного помощи

http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html

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

Разделите на 10, используйте остаток, чтобы получить 8, если частное не равно нулю, снова разделите на 10 и используйте остаток, чтобы получить ноль, если частное не равно нулю, повторите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top