jeudi 14 avril 2016

Converting this program into mips

I am very new to MIPS right now and am very confused as to how I am supposed to convert this code in C into MIPS. Can anybody possibly solve this for me? Thank you!

uint32_t m_w = 50000;
uint32_t m_z = 60000;

int main()
{
  uint32_t a, b;
  for(int i=0; i<10; i++)
  {
      a = random_in_range(1,100000);
      b = random_in_range(1,100000);
      printf("GCD(%d,%d) = %d\n", a, b, gcd(a, b));
  }
  return 0;
}

uint32_t gcd(uint32_t a, uint32_t b)
{
   if ((a % b) == 0)
      return b; 

   return gcd(b, a % b);
}

uint32_t random_in_range(uint32_t low, uint32_t high)
{
   uint32_t range = high-low+1;
   uint32_t rand_num = get_random();
   return (rand_num % range) + low;
}

uint32_t get_random()
{
   uint32_t result;
   m_z = 36969 * (m_z & 65535) + (m_z >> 16);
   m_w = 18000 * (m_w & 65535) + (m_w >> 16);
   result = (m_z << 16) + m_w;  /* 32-bit result */
   return result;
}




Aucun commentaire:

Enregistrer un commentaire