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