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 -no-pie -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!!!