Целочисленная задача в сборке MIPS - PullRequest
0 голосов
/ 30 ноября 2009

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

Пример:

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

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

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

спасибо, мр

Ответы [ 2 ]

2 голосов
/ 30 ноября 2009

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

1 голос
/ 30 ноября 2009

Это @ донский ответ, с изюминкой

$ 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

...