INF1018- Software Básico - 2010.1

Aulas de Laboratório

Aula 7 - Mais Funções

  1. Você terminou todos os laboratórios anteriores? Se não, termine agora.

  2. 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.

  3. 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.

  4. 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);
    }
    

  5. 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.