INF1612 - Software Básico

Aulas de Laboratório

Aula 5 - Assembler (continuação)

  1. O nosso próximo programa está aqui. Salve-o em um arquivo prog2.s. Compile e execute esse programa.

  2. Modifique o programa para imprimir somente as letras diferentes de 'a' (minúsculo). (Consulte a tabela ascii se necessário.)

  3. Modifique o programa para calcular (e imprimir) o comprimento da string S2. (Use a função printnum da aula passada para a impressão.)

  4. Modifique o programa para converter as letras minúsculas para maiúsculas antes da impressão.

  5. Os primeiros 32 bits de um pacote IP (protocolo usado na Internet) têm o conteúdo seguinte (observe a marçação de bits pois os tamanhos não estão proporcionais!):
           31       27        23             15                       0
           ------------------------------------------------------------
          | versão | tam cab | tipo serviço |   tamanho do pacote      |
           ------------------------------------------------------------
          |          ... continuacao                                   |
    
    onde versão é a versão do protocolo IP sendo usada, tam cab indica o tamanho do cabeçalho do pacote (em palavras de 32 bits), e tamanho do pacote indica o tamanho do pacote IP inteiro (em octetos). Os bits de tipo de serviço têm o desdobramento abaixo:
        7    6    5    4    3    2    1    0
        ------------------------------------
       | precedencia  |  D |  T |  R | nada |
        ------------------------------------
    
onde precedência pode assumir valores de 0 a 7 e os bits D, T e R, indicam, respectivamente, pedidos de baixo delay, alto throughput e alta reliability. Suponha que o valor desses primeiros 32 bits, vistos como um unsigned, é 1172570210. Faça um programa que imprima o valor de cada um dos campos mostrados acima.