Assembly MIPS汇编中素数的计算

Assembly MIPS汇编中素数的计算,assembly,mips,pcspim,Assembly,Mips,Pcspim,我目前正在开发一个程序,使用PCSPIM在MIPS汇编中使用递归计算最多200个素数。到目前为止,我已经成功地填充了一个1-200的数字数组和一个包含所有1的二进制向量列表。我正在努力解决的概念是如何使用堆栈框架来帮助完成这个过程 以下是我为堆栈框架准备的内容: subu $sp,$sp,32 # Set up the stack frame sw $ra, 28($sp) # save $ra register to the stack sw $fp,

我目前正在开发一个程序,使用PCSPIM在MIPS汇编中使用递归计算最多200个素数。到目前为止,我已经成功地填充了一个1-200的数字数组和一个包含所有1的二进制向量列表。我正在努力解决的概念是如何使用堆栈框架来帮助完成这个过程

以下是我为堆栈框架准备的内容:

 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

我只是不明白这将如何帮助我找到素数。如有任何见解,将不胜感激

如果您熟悉Eratosthenes的筛选,则不需要递归来查找素数。这种方法比使用递归更简单,内存效率更高,并且不需要使用堆栈


我不能帮你找到素数,因为你从来没有指定你使用的算法

在编写代码之前,你清楚算法吗?我只是不明白这将如何帮助我找到素数。它可以帮助您执行递归调用,因为您需要以某种方式保存和恢复$ra和其他寄存器,并且您可以说您的算法是递归的。starrify,我完全清楚该算法。如果我必须用高级语言来做,我肯定能做到。我只是不明白如何在MIPS中执行。@dhint4很好。那么迈克尔的评论也是我想说的。还可以询问Google如何在诸如MIPS assembly之类的低级语言中实现递归。