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); }