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.