Escolar Documentos
Profissional Documentos
Cultura Documentos
funcionalidades. Exemplos:
Instrues de Movimento de Dados Operaes Didicas Operaes Mondicas Comparaes e Desvios Condicionais Instrues de Chamadas a Procedimento Controle de Loop Entrada/Sada
original. O contedo original da memria no apagado (pelo menos de imediato) As instrues de movimento de dados precisam, antes de mais nada, indicar a quantidade de dados a ser movida de um lugar para outro.
Operaes Didicas
So aquelas que combinam dois operandos para produzir um
Operaes Didicas
A funo OR usada para insero de bits em uma palavra. Exemplo Para se modificar os 4 bits mais a direita de uma palavra podeExemplo:
resultado. Exemplo: Exemplo Todas as arquiteturas tm instrues para soma, subtrao, multiplicao e diviso de nmeros inteiros. Tambm, as funes booleanas AND, NAND, OR, NOR, XOR e outras so operaes didicas. A funo AND muito usada para extrair, ou isolar, bits de palavras. Exemplo: 1011 1101 1010 A
0000 1111 0000 B (mscara) 0000 1101 0000 A AND B
se fazer:
Operaes Mondicas
So aquelas que tm apenas um operando e produzem um resultado. As instrues para deslocar ou rotacionar o contedo de uma palavra ou
Operaes Mondicas
Muitas vezes as operaes de deslocamento a direita so realizados com
de um byte so mondicas. Exemplos: 1011 1101 1011 A 0010 1111 0110 A deslocado 2 bits direita (equivale a uma diviso por 4) 1110 1111 0110 A rotacionado 2 bits direita
Vantagem do descolamento?
extenso do sinal. Neste caso um nmero negativo continuar negativo aps sofrer uma operao de deslocamento. Exemplos: 1011 1101 1011 A 0010 1111 0110 A deslocado 2 bits direita, sem extenso de sinal 1110 1111 0110 A deslocado 2 bits direita, com extenso de sinal
seqncia de execuo de suas instrues com base nos resultados desses testes. Exemplo a instruo sqrt (x) - raiz quadrada de x - deve testar o valor Exemplo: de x antes de ser executada. Se x>=0 o resultado a raiz quadrada de x, caso contrrio, a instruo deve desviar a seqncia de execuo para um LABEL de erro ou "warning". Os desvios podem ser determinados pela comparao de 1 bit de dados. Exemplo: Exemplo Para saber se um dado positivo ou negativo, compara-se seu bit mais significativo com 0 ou 1, respectivamente.
forem iguais a 0.
10
indicando se os dados so iguais ou diferentes. A instruo que realiza essas operaes tem 3 endereos. Por qu?
Um endereo para o desvio.
sinal.
Valor sem sinal 000 001 010 011 100 101 110 111
Valor com sinal 100 (menor) 101 110 111 000 001 010 011 (maior)
12
E as mquinas que no permitem 3 endereos? Uma soluo possvel: 02 instrues: 1 modifica bits da mquina; 2 compara esses bits e desvia.
11
como um grupo de instrues que realizam uma determinada tarefa e que podem ser chamadas (invocadas) a partir de diversas posies de um programa ( inclusive de outro procedimento ou do mesmo procedimento - recurso)
Essas instrues, alm do cdigo de operao, devem ter: um endereo do procedimento chamado e, tambm, um endereo de retorno que ser usado, quando a execuo do procedimento retorno, chamado terminar, para retorno ao programa chamador.
armazenados em uma pilha, implementada na memria, que cresce ou diminui a medida que os procedimentos so chamados e retornam, respectivamente.
13
14
Controle de Loop
i = 1;
Todos os esquemas de instrues para implementar um controle de loop baseiam-se em um contador que cresce ou decresce de uma constante, sempre que se completar uma passagem pelo loop. Mtodos para implementao de um loop loop:
Loop com teste de trmino no final do corpo das instrues; Loop com teste de trmino no incio do corpo das instrues.
L1: primeiro comando do loop; . . . ltimo comando do loop; i = i+1; if (i < n) goto L1;
i = 1; L1: if ( i > n ) goto L2 primeiro comando do loop; . . . ltimo comando do loop; i = i+1; goto L1; L2: (b)
(a)
(a) Loop com teste de trmino no final do corpo das instrues. (b) Loop com teste de trmino no incio do corpo das instrues.
15 16
Controle de Loop
Entrada/Sada
Diferena entre comparao no incio e no final? No final, o loop executado ao menos uma vez. Isso bom? Se uma arquitetura s disponibilizar uma nica instruo, tanto para teste quanto para incremento, os projetistas sero obrigados a optar por uma das implementaes. At 1977 FORTRAN s fazia o teste no final.
Existem, basicamente, 3 esquemas diferentes para a realizao de operaes de E/S em computadores pessoais: 1. E/S programada com espera ocupada 2. E/S dirigida por interrupo 3. E/S com acesso direto memria (DMA)
17
18
sada;
Trabalha com dois registradores para fazer a E/S Registrador de estado Registrador de dados Essas instrues so executadas em loop No uma boa soluo, o processador gasta grande parte do tempo do processamento
no loop
dispositivo e sai do processo, levando o dispositivo a interromp-lo ao trmino da operao. Desvantagem? A desvantagem deste mtodo que existe a necessidade de se gerar uma interrupo para cada caractere transmitido, e o processamento de interrupes caro.
Existe um tempo de espera para que um bit de controle avise que um caractere pode ser
19
20
Agrega-se um componente ao processo de E/S programada, um chip controlador conhecido como DMA (Direct Memory Access - Acesso Direto Memria). Este dispositivo tem acesso direto ao barramento. O DMA recebe informaes sobre um endereo de memria, a quantidade de bytes a serem transferidos, o nmero do dispositivo a ser acessado e a direo (leitura ou escrita) dos dados. Com essas informaes o DMA capaz de transferir dados entre a memria e o dispositivo de E/S, via barramento, sem interveno do processador. Assim o processador fica livre para realizar outras operaes.
Dispositivo
Direo
Barramento