将Java代码转换为MIPS

将Java代码转换为MIPS,mips,Mips,我想把这个Java代码转换成MIPS。以下是Java代码: 浮动数据[]={9.24,1.15,3.91,-2.30,7.43,5.79,6.83,3.14}; int size=8; /** *average传递浮点数组的基址,并 *它的大小。它会提示用户从中输入元素的数量 *将数组设置为平均值,对其进行平均,然后打印结果。 */ 公共静态void averagefloat nums[],整数大小{ 扫描仪扫描=新的ScannerSystem.in; System.out.println应平均

我想把这个Java代码转换成MIPS。以下是Java代码:

浮动数据[]={9.24,1.15,3.91,-2.30,7.43,5.79,6.83,3.14}; int size=8; /** *average传递浮点数组的基址,并 *它的大小。它会提示用户从中输入元素的数量 *将数组设置为平均值,对其进行平均,然后打印结果。 */ 公共静态void averagefloat nums[],整数大小{ 扫描仪扫描=新的ScannerSystem.in; System.out.println应平均多少个?; int n=scan.nextInt; 如果n>大小{//,则平均值不超过 n=大小;} 浮动总和=0.0;
forint i=0;i在循环和if语句中需要记住的一件事是,您经常希望在相反的条件下计算分支。例如,您的循环可能如下所示:

forLoop:
         bge $a1, $s6, endLoop  #if i >= n, branch to endLoop
         #<loop operations> -- comments are pseudocoded
         # something like lw num, $i(nums)
         # add sum, sum, num
         add $a1, $a1, $a2  #increment i
         j forLoop
除法可以通过一些巧妙的位移位和算术来处理。如果你能变成MIPS,我想它会解决你的问题。解决方案是用C语言编写的,但应该仍然清晰易读

forLoop:
         bge $a1, $s6, endLoop  #if i >= n, branch to endLoop
         #<loop operations> -- comments are pseudocoded
         # something like lw num, $i(nums)
         # add sum, sum, num
         add $a1, $a1, $a2  #increment i
         j forLoop