Você terminou todos os laboratórios anteriores? Se não, termine agora.
Escreva em assembly uma função para imprimir um valor na base 2
(representação binária).
A função recebe um único parâmetro int
(o valor a ser impresso).
Use a função putchar para imprimir os dígitos binários:
int putchar(int c);
putchar deve obedecer a convenção de
chamada de procedimentos, ou seja, o parâmetro deve ser colocado na pilha!
Escreva em C uma função main para testar sua função em assembly.
Considere o código abaixo:
struct X {
char c;
struct X *next;
};
int add (struct X *x) {
int a = 0;
for (; x != NULL; x = x->next)
a += x->c;
return a;
}
Codifique a função add em assembly e escreva em C uma função
main para testá-la. Sua função main deve alocar
e inicializar as estruturas!
Dicas:
Assumindo a definição anterior para a estrutura X,
codifique a função abaixo em assembly:
int add2 (struct X *x) {
if (x == NULL) return 0;
else return x->c + add2(x->next);
}
Refaça os exercícios anteriores assumindo que a estrutura X
tem a definição abaixo:
struct X {
int c;
struct X *next;
};
Procure mudar o mínimo possível no seu código.