Revisão de arquiteturas
As excepções assíncronas são as que ocorrem sem qualquer relação temporal com o programa que é executado. Pedidos de E/S, erros de memória, falhas de fornecimento de energia etc. são exemplos de excepções assíncronas. Um overflow aritmético não é uma excepção assíncrona, visto que ocorre no mesmo sítio de cada vez que um programa é executado com os mesmos dados e com a mesma alocação de memória.
02 - Escreva um trecho de programa para ler um número decimal. Use o seguinte algoritmo:
num = 0; // Inicializa o numero do { // Entra em loop c = getchar(); // Pega um caractere c = c - '0'; // Subtrai o codigo ASCII do caractere '0' if(c < 0) break; // Carcatere invalido: sai num = 10*num + c; // Acrescenta o digito ao numero
} while(1); // Fim do loop return num; // Retorna o valor lido
RESPOSTA EXERCICIO 02
// Lê um numero; Usa BL getchar para ler um caractere // R0 = num // R1 = c c= caractere lido MOV R0, #0 // num = 0 LP1: BL getchar // Caractere ASCII lido em R1 SUBS R1, R1, #'0' // Subtrai o codigo ASCII do '0' ADDGE R0, R0, R0, LSL #2; // Multiplica num por 5: 5*R0 = R0 + (R0 << 2) ADDGE R0, R1, R0, LSL #1 // num = 10*num + c 03 - O que é overflow ? , Cite um exemplo de Overflow .
RESPOSTA
Uma região temporária de memória utilizada para guardar dados que serão transportados de um lugar para o outro Tecnicamente, o buffer overflow consiste em armazenar em um buffer de tamanho fixo, dados maiores que o seu tamanho.
Exemplo : Observe que a área utilizada pelo programa esta maior que o Buffer de memoria .
04 - O que são IRQS ?. Explique o funcionamento das IRQs.
RESPOSTA
IRQ é abreviação de