2014-10-10 6 views
1

В настоящее время я работаю над программой, которая вычисляет простые числа до 200, используя рекурсию в сборке MIPS с использованием PCSPIM. До сих пор я заполнил массив чисел из 1-200 и список бинарных векторов, который состоит из всех 1 успешно. Концепция, с которой я борюсь, заключается в том, как использовать фрейм стека, чтобы помочь в этом процессе.Вычисление простых чисел в сборке MIPS

Вот что у меня есть для кадра стека:

subu $sp,$sp,32  # Set up the stack frame 
sw $ra, 28($sp)  # save $ra register to the stack 
sw $fp, 24($sp)  # save $fp register to the stack 
addu $fp, $sp, 28  # set $fp register to the end of the stack 

Я просто не понимаю, как это собирается помочь мне найти простые числа. Любое понимание было бы высоко оценено!

+0

Перед кодом вы прояснили алгоритм? – starrify

+0

_ «Я просто не понимаю, как это поможет мне найти простые числа». Это помогает вам выполнять рекурсивные вызовы, так как вам нужно как-то сохранить и восстановить '$ ra' (и, возможно, другие регистры), а вы скажем, что ваш алгоритм рекурсивный. – Michael

+0

starrify, я полностью понимаю алгоритм. Если бы мне пришлось делать это на высоком уровне, я бы определенно мог это сделать. Я просто не понимаю, как это сделать в MIPS. – dhint4

ответ

0

Если вы знакомы с ситом Эратосфена, вам не нужна рекурсия, чтобы найти простые числа. Этот метод намного проще и экономичнее, чем использование рекурсии, и вам не нужно использовать стек.

Я не могу помочь вам «как это поможет мне найти простые числа», потому что вы никогда не указали, какой алгоритм вы используете.