Logo Passei Direto
Buscar

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Interrupções e o ciclo de instrução
Entrada e Saída (E/S)
Montador (assembler)
Arquitetura do Conjunto de Instruções
Interrupções e o ciclo de instrução
 Todos os computadores fornecem uma maneira de fazer com que o
ciclo normal de busca-decodifica-executa seja interrompido.
 Estas interrupções podem ser necessárias por diversas razões,
incluindo erro de programa, etc.
 O processador termina a execução da instrução corrente e verifica,
no inicio de cada ciclo busca-decodifica-executa, se uma interrupção
foi gerada.
Interrupções e o ciclo de instrução
 Ciclo busca-decodifica-executa com verificação de interrupção.
Processar a interrupção
Executar o ciclo busca-
decodifica-executa
Foi lançada 
uma 
interrupção?
NÃOSIM
Interrupções e o ciclo de instrução
 Fluxograma do processo de uma interrupção.
Início
Sinal de interrupção 
detectado
Salvar variáveis e 
registradores
Buscar endereço da 
ISR* na tabela de 
vetores de 
interrupção
Colocar endereço da 
ISR no PC
Desviar para 
a ISR
Início
Executar trabalho 
específico de 
interrupção
Retorno
Retornar variáveis e 
registradores salvos
Desviar para o início 
do ciclo busca-
decodifica-executa
* Rotinas de serviços 
de interrupção
Entrada e Saída (E/S)
 O computador, tomado como exemplo, possui dois registradores
para tratar de entrada e saída.
 Um registrador de entrada, contém os dados que estão sendo
transferidos de um dispositivo de entrada no computador.
 O outro, o registrador de saída, contém informação pronta para ser
enviada à um dispositivo de saída.
Um programa exemplo
 Programa para somar dois números.
Endereço (hexa) Instrução Significado
100 Load 104 Carrega 0023 no AC
101 Add 105 Soma valor hexadecimal que ele 
encontra no endereço 105
102 Store 106 Armazena o resultado na posição 
de memória 106
103 Halt Encerra o programa
104 0023
105 FFE9
106 1 000C
Uma discussão sobre montadores
O que faz um montador (assembler)?
 O trabalho de um montador é converter a linguagem simbólica
(assembly) em linguagem de máquina (que consiste inteiramente de
valores binários, ou sequências de “0” e “1”.
 O montador lê um arquivo fonte (programa simbólico) e produz um
arquivo objeto (código de máquina).
O que faz um montador (assembler)?
 Podemos usar rótulos (nomes simples) para identificar ou dar
nomes aos endereços de memória particulares, tornando a tarefa de
escrever programas simbólicos muito mais simples.
 Por exemplo, em nosso programa de somar dois números, podemos
usar rótulos para indicar um endereço de memória, tornando assim
desnecessário saber o endereço de memória exato dos operandos
das instruções.
O que faz um montador (assembler)?
 A tabela a seguir ilustra este conceito.
Endereço (hexa) Instrução Significado
100 Load X Carrega 0023 no AC
101 Add Y Soma valor hexadecimal que ele 
encontra no endereço 105
102 Store Z Armazena o resultado na posição 
de memória 106
103 Halt Encerra o programa
104 (X) 0023
105 (Y) FFE9
106 (Z) 1 000C
X, Y e Z: são os rótulos (endereços de memória)
Arquitetura do Conjunto de Instruções
Opcodes expandidos
 As instruções em um computador podem precisar de poucos ou
muitos bits.
 É possível fazer alguns opcodes (instruções) curtos, mas ter um meio
de prover outros, mais longos, quando necessário.
 Quando o opcode é curto, vários bits são reservados para conter os
operandos (endereços).
Arquitetura do Conjunto de Instruções
Opcodes expandidos
 Quando não há necessidade de espaço para operandos (para uma
instrução como Halt), todos os bits podem ser usados para o
opcode, o que permite instruções distintas.
 Entre esses limites, existem opcodes mais longos com menos
operandos, bem como opcodes mais curtos com mais operandos.
Opcode Endereço 2 Endereço 3 Endereço 4
Arquitetura do Conjunto de Instruções
Tipos de Instrução
 Movimentação de dados:
 Instrução de movimentação de dados são as instruções mais
frequentemente usadas.
 Dados são movidos da memória para registradores, de registradores
para registradores e de registradores para a memória.
 Instrução de movimentação de dados incluem MOVE, LOAD, STORE...
Arquitetura do Conjunto de Instruções
Tipos de Instrução
 Operações aritméticas:
 Operações aritméticas incluem aquelas instruções que usam números
inteiros e de ponto flutuante.
 Instruções aritméticas incluem ADD, SUBTRACT, MULTIPLY...
 Instruções de lógica booleana:
 São as instruções AND, NOT, OR...
Arquitetura do Conjunto de Instruções
Tipos de Instrução
 Instruções de manipulação de bits:
 Instruções de deslocamento lógico deslocam bits tanto para a esquerda
quanto para direita.
 Elas incluem instruções SHIFT e ROTATE.
Arquitetura do Conjunto de Instruções
Tipos de Instrução
 Instruções de entrada e saída:
 Uma instrução de entrada (ou leitura) transfere dados de um
dispositivo para a memória ou para um registrador específico.
 Uma instrução de saída (ou escrita) transfere dados de um registrador,
ou memória, para um dispositivo específico.
Arquitetura do Conjunto de Instruções
Tipos de Instrução
 Instruções para transferência de controle:
 Instruções de controle são usadas para alterar a sequência normal de
execução do programa.
 Estas instruções incluem desvios, saltos, chamadas de procedimentos,
retornos e término do programa.
Arquitetura do Conjunto de Instruções
Tipos de Instrução
 Instruções de propósito especial:
 Estas instruções incluem aquelas usadas para suporte a linguagens de
alto nível, gerência de cache, acesso a registrador, etc.

Mais conteúdos dessa disciplina