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