Procedimentos e funções

 

 

1. Converta para assembly do MIPS o seguinte programa:

 

	void main() {
		int a = 10;
		int b = 12;
		int x = 20;
		x = x + (pot(a,5) + pot(b,2)); }

	int pot(int base, int n)  {
		int p=1;

		while (n>0)  {
			p = base * p;
			n = n-1;  }
		return (p); }

 

Nota: O procedimento main deve também seguir as convenções estudadas.

 

2. Converta para assembly do MIPS a seguinte função :

 

	int fact(int n) {
		int p;
		if (n<2) p=1;
		else p = n * fact(n-1);
		return(p);
	}

 

3. Converta para assembly do MIPS o seguinte programa:

 

	int a[10]={5,-3,10,200,-30,1000,333,89,112,13};

	void main() {
		int m;
		m = maximo(a, 10);
	}

	int maximo(int *arr, int tam) {
		int i, max;
		max = arr[0];
		i = 1;
		while (i<tam) {
			if (arr[i] > max) max = arr[i];
			i = i+1;
		}
		return (max);
	}