O nosso próximo programa está
aqui.
Salve-o em um arquivo prog2.s
.
Compile e execute esse programa.
Modifique o programa para imprimir somente as letras diferentes de 'a' (minúsculo). (Consulte a tabela ascii se necessário.)
Modifique o programa para calcular (e imprimir) o comprimento da string
S2
.
(Use a função
printnum
da aula passada para a impressão.)
Modifique o programa para converter as letras minúsculas para maiúsculas antes da impressão.
int *p = S2; for (i = 0; i != 4; i++) { printnum (*p); /* chamada de função interna, sem a convenção de C */ p++; }
Altere esse loop para percorrer o array sem usar um ponteiro, ou seja, indexando o array conforme o trecho em C abaixo:
for (i = 0; i != 4; i++) { printnum (S2[i]); /* chamada de função interna, sem a convenção de C */ }
31-28 27-24 23-16 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-5 4 3 2 1-0 ------------------------------------ | precedencia | D | T | R | nada | ------------------------------------
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.
Para isso, você pode declarar uma variável na área de dados, e inicializá-la com
esse valor, como abaixo:
pacote: .int 1172570210
Faça um programa que imprima o valor de cada um dos campos mostrados acima
(use, para isso, a função printnum
).