Traduza para assembly a função add
a seguir, criando um arquivo
add.s
.
int add (int a, int b, int c) {
return a+b+c;
}
Escreva agora, em C, uma função main
que chame essa
função add
. Por exemplo,
#include <stdio.h>
int add (int a, int b, int c);
int main (void) {
printf("%d\n", add(1,2,3));
return 0;
}
Compile os dois arquivos juntos
(algo como gcc -Wall -o prog add.s main.c
)
e execute o resultado.
Traduza a função fat
abaixo para assembly.
Teste-a com uma função main
escrita em C.
int fat (int n) {
if (n==0) return 1;
else return n*fat(n-1);
}
Traduza para assembly a função foo
mostrada abaixo.
Atenção: a sua tradução deverá representar a indexação do array
a
!
void foo (int a[], int n) {
int i;
int s = 0;
for (i=0; i<n; i++) {
s += a[i];
if (a[i] == 0) {
a[i] = s;
s = 0;
}
}
}
Crie agora um arquivo C com uma função main
que
chame foo
, compile os dois módulos juntos e
execute o resultado, verificando se a saída do programa está correta!!!