Você está na página 1de 33

Nvel de Arquitetura do Conjunto

de Instrues (ISA)
Aula 3
Prof. Antoniel Rego
Resumo da aula passada
Nvel ISA
Exemplos de instrues, considerando os variados
tamanhos;
Modos de Endereamento:
Imediato;
Direto;
Indireto;
Por registrador;
Indireto por Registrador;
Por deslocamento;
De pilha.
Aula de hoje: Nvel ISA
Tipos de Instruo:
Movimento de Dados;
Operaes Didicas;
Operaes Mondicas;
Comparaes e desvios condicionais;
Instrues de chamada de procedimento;
Controle de lao.
Fluxo de Controle:
Fluxo de controle sequencial e desvios;
Procedimentos;
Corrotinas;
Excees;
Interrupes.
Nvel ISA Tipos de Instrues
Movimento de dados:
Copiar dados;
Criao de um novo objeto, com padres de bits
idntico ao original;
Atribuio de valores a variveis: A = B;
Cpia de dados entre registrador e memria:
LOAD: Memria Registrador;
STORE: Registrador Memria;
MOVE: Registrador Registrador.
Exemplos de instrues de movimento de
dados no Core i7:

Nvel ISA Tipos de Instrues
INSTRUO DESCRIO
MOV DST, SRX Mova SRC para DST
PUSH SRC Passe SRC para a pilha
POP DST Retire uma palavra da pilha e
passe-a para DST
XCHG DS1, DS2 Permute DS1 e DS@
Operaes Didicas:
Combinam dois operandos para produzir um
resultado;
Operaes Aritmticas: Adio, subtrao,
multiplicao e diviso;
Operaes Lgicas: AND, OR, NOT, etc.

Nvel ISA Tipos de Instrues
Exemplos de operaes didicas do Core i7:

Nvel ISA Tipos de Instrues
INSTRUO DESCRIO
ADD DST, SRC Some SRC com DST
SUB DST, SRC Subtraia SRC de DST
AND DST, SRC AND booleana entre SRC e
DST
OR DST, SRC OR boleana entre SRC e DST
Operaes Mondicas:
Tm um operando e produzem um resultado;
Instrues mais curtas;
Instrues para deslocar ou rodar o contedo de
uma palavra ou byte;
INC: para somar 1. NEG: para negar X ou executar
a operao 0 - X
Nvel ISA Tipos de Instrues
Exemplos de operaes mondicas do Core i7:

Nvel ISA Tipos de Instrues
INSTRUO DESCRIO
INC DST Some 1 a DST
DEC DST Subtraia 1 de DST
NEG DST Negue DST ( Subtraia DST de
0)
NOT DST Substitua DST por
complemento de 1
Comparaes de desvios condicionais:
Os computadores precisam ter a capacidade de testar
seus dados a alterar a sequncia de instrues a ser
executada com base nos resultados;
Ex:
sqrt(X): Se X for negativo, o procedimento emite uma
mensagem de erro, caso contrrio, calcula a raiz quadrada;
X / Y : Se Y for igual a 0, o procedimento emite uma
mensagem de erro, caso contrrio, calcula a raiz quadrada;
Nvel ISA Tipos de Instrues
Exemplo de comparaes e desvio
condicionais no Core i7:

Nvel ISA Tipos de Instrues
INSTRUO DESCRIO
CMP SRC1, SRC2 Liga os flags com base em
SRC1 e SRC2
JMP ADDR Desvia para ADDR
Jxx ADDR Saltos condicionais com base
em flags
Instrues de chamada de procedimento:
Um procedimento um grupo de instrues que realiza alguma
tarefa e pode ser invocado de diversas partes do programa;
Sub-rotina, funes ou mtodos;
Quando um procedimento chamado atravs de instruo
de chamada de procedimento (CALL), o programa desviado
para a primeira instruo do procedimento;
Quando o procedimento termina sua tarefa o programa
desviado para a instruo imediatamente seguinte a instruo
de sua chamada atravs de instruo de retorno de
procedimento (RET);
Quando o procedimento chamado, necessrio armazenar
o endereo de retorno;

Nvel ISA Tipos de Instrues
Instrues de chamada de procedimento no
Core i7:

Nvel ISA Tipos de Instrues
INTRUO DESCRIO
CALL ADDR Chama o procedimento em
ADDR
RET Retorno do Procedimento
Controle de lao:
Necessidade de executar um grupo de instrues
por um nmero fixo de vezes;
Os esquemas envolvem um contador que
aumentado ou reduzido de alguma constante cada
vez que o lao percorrido.
O contador testado cada vez que o lao
percorrido;
Se certa condio ocorrer, o lao concludo.
Nvel ISA Tipos de Instrues
Controle de lao no Core i7:

Nvel ISA Tipos de Instrues
Entrada/Sada:
E/S programada;
E/S por interrupo;
E/S por DMA (Acesso Direto Memria)
Nvel ISA Tipos de Instrues
Nvel ISA Tipos de Instrues
E/S programada:
Os dados so trocados entre o processador e o mdulo de
E/S;
O processador controla diretamente todas as etapas da
comunicao;
O processador tem controle direto da operao de E/S:
percepo do estado do dispositivo, envio de comando de
leitura (IN), escrita (OUT) ou transferncia dos dados;
O processador verifica periodicamente o status do
dispositivo de E/S para saber se a operao foi concluda;
Tempo gasto pelos dispositivos de E/S muito maior que o
tempo que o processador utiliza para processar alguma
instruo;





E/S Programada:
Nvel ISA
Tipos de
Instrues
E/S por interrupo:
O processador comanda, por uma instruo, o
incio de uma operao de E/S;
O processador realiza outras tarefas at que o
perifrico sinalize, por meio de interrupo, que a
operao terminou;
O processador no perde tempo verificando se a
operao do perifrico terminou;

Nvel ISA Tipos de Instrues
Nvel ISA
Tipos de
Instrues

E/S por
Interrupo
E/S por DMA:
A transferncia de dados feita entre o mdulo
de E/S e a memria principal;
No h interveno do processador;
Controlador DMA responsvel pelo controle da
transferncia dos dados;

Nvel ISA Tipos de Instrues




E/S por DMA:
Nvel ISA
Tipos de
Instrues
Nvel ISA Fluxo de Controle
Sequncia em que as instrues so
executadas durante a execuo do programa;
Fluxo sequencial e desvios/saltos;
Procedimentos;
Co-rotinas;
Traps (Excees);
Interrupes.
Desvios:
a prxima instruo a ser buscada no mais a
instruo na posio consecutiva da memria e
sim a instruo armazenada no endereo de
destino do desvio;

Nvel ISA Fluxo de Controle
Sequencial e desvios:
Nvel ISA Fluxo de Controle
Procedimento:
Altera o fluxo de controle do mesmo modo que
um desvio;
Quando termina sua tarefa, retorna instruo
seguinte instruo de chamada;
Muito utilizado em programa estruturados;
Tipo especial: procedimento recursivo;
Nvel ISA Fluxo de Controle
Procedimento:
Nvel ISA Fluxo de Controle
Co-rotinas:
so pares de sequencias de instrues que
executam tarefas interdependentes em paralelo;
Aplicaes mais comuns: paralelismo simulado,
teste de software para multiprocessadores;
Implementadas atravs de instruo REATIVA:
empilha endereo da prxima instruo da co-
rotina corrente e desvia para a instruo seguinte
instruo mais recentemente executada da
outra co-rotina.

Nvel ISA Fluxo de Controle
Co-rotinas:
Nvel ISA Fluxo de Controle
Trap (Excees):
uma chamada automtica de procedimento, causada pela
ocorrncia de uma situao especial (exceo) na execuo do
programa, detectada pelo hardware ou pelo microprograma;
Durante a execuo de um programa, uma trap pode ser gerada,
por exemplo, quando ocorre um overflow, uma violao de
proteo de memria, uma diviso por zero, estouro de pilha,
etc;
Quando um ocorre uma trap, o fluxo de controle alterado para
uma posio fixa da memria, que contm uma chamada para
uma rotina de tratamento de trap;
So causadas pelo prprio programa;
So SNCRONAS: se um programa executado sempre com a
mesma entrada que cause exceo, a trap gerada sempre no
mesmo ponto;

Nvel ISA Fluxo de Controle
Interrupes:
Alterao no fluxo de controle causada por um
evento externo ao programa, em geral relacionada
E/S;
Fluxo de controle alterado por outro dispositivo:
E/S;
So ASSNCRONAS ao programa;
Nvel ISA Fluxo de Controle
Prxima aula
Lista de Exerccios
Referncias
http://www.inf.ufrgs.br/~dsmmatos/aula_4.p
df
Organizao Estruturada de Computadores, 6
Edio, Tanenbaum

Você também pode gostar