Beruflich Dokumente
Kultur Dokumente
Sistemas de Computao I
Centro de Cincias Computacionais C3 - FURG
Converso
Entrada/ Sada
Podem ser instrues especficas para E/S Instrues de movimento de dados (mapeamento de memria) Podem ser executadas por um controlador separado (DMA)
Controle do Sistema
Instrues privilegiadas. Para uso do sistema operacional. Geralmente manipulam registradores de controle. CPU precisa estar em estados especficos
Transferncia de Controle
Alteram a execuo sequncial do programa. Podem ser desvios, saltos ou chamadas de rotinas. Exemplos:
Transferncia de Controle
Desvio (Branch)
( PC <- endereo)
SE (condio) PC <- endereo SENO PC <- PC +1 Desvia para endereo_x se o resultado zero
Exemplo:
Com 2 bits de controle, 4 resultados possveis: (ZERO, POSITIVO, NEGATIVO, OVERFLOW) 4 tipos de desvio:
Transferncia de Controle
Salto (Skip)
Incrementa e salta se zero (increment and skip if zero) 301 302 303 Enquanto R1 no for Zero, incrementa R1, 304 ISZ R1 E realiza a instruo da posio seguinte 305 Branch 301 (305) que neste exemplo, faz com que o programa retorne para a posio 301, 306 ADD A
formando um loop. Quando R1 = 0, pula a instruo da posio 305 e executa a instruo da posio 306
Transferncia de Controle
Chamada de Procedimentos
Chamada de Procedimentos
Pode ser invocado (chamado) em qualquer ponto do programa Instrui o processador a executar todo o procedimento e ento, retornar ao ponto em que ocorreu a chamada. economia e modularidade
Controle de procedimentos
2 instrues de desvio:
Instruo de chamada: desvia a execuo da instruo corrente para o incio do procedimento. Instruo de retorno: provoca o retorno da execuo do procedimento para o endereo em que ocorreu a chamada.
Instruo de Desvio
Procedimentos Aninhados
Observaes
Um procedimento pode ser chamado de mais de um ponto do programa. Uma chamada a um procedimento pode ocorrer dentro de um procedimento. Isso possibilita o aninhamento de procedimentos, at uma profundidade arbitrria. A cada chamada de procedimento corresponde um retorno, para o programa que efetuou a chamada.
Pilhas
Conjunto ordenado de elementos, dos quais apenas um pode ser acessado em dado instante (TOPO DA PILHA) LIFO (last-in-first-out) Operaes bsicas sobre pilhas:
PUSH POP Operao unria: operao sobre o elemento do topo da pilha, substitui o elemento do topo pelo resultado. Operao binria: efetua a operao sobre os dois elementos no topo da pilha. Retira os dois elementos do topo da pilha. Coloca o resultado da operao no topo da pilha.
Uso de Pilha
Endereo de retorno
Comumente armazenado:
Em um registrador
CALL X :
CALL X:
No topo da pilha
Endereo de retorno
Comumente armazenado:
Em um registrador
I m p e d e m
CALL X :
CALL X:
p r o c e d i m e n t o s
r e e n t r a n t e s
No topo da pilha
Passagem de parmetros
Registro de Ativao: Conjunto de dados armazenados na pilha em uma chamada de procedimentos, incluindo parametros e endereo de retorno.
Implementao da Pilha
Apontador de topo da pilha Base da pilha (normalmente no endereo mais alto do bloco reservado para a pilha) Limite da pilha (no endereo mais baixo)
Linguagem de Montagem
Contedo inicial: I=2, J=3 e K=4 Programa carregado a partir da posio de memria de endereo 101 (h) 4 variveis armazenadas a partir do endereo 201. O programa consiste de 4 instrues
Carrega o contedo da posio de endereo 201 em AC Adiciona o contedo da posio de endereo 202 a AC Adiciona o contedo da posio de endereo 203 a AC Armazena o contedo de AC na posio de endereo 204
Contedo 0010 0010 0000 0001 0001 0010 0000 0010 0001 0010 0000 0011 0011 0010 0000 0100 0000 0000 0000 0010 0000 0000 0000 0011 0000 0000 0000 0100 0000 0000 0000 0000
201 202
203 204
0002 0003
0004 0000
201 202
203 204
DAT 2 DAT 3
DAT 4 DAT 0
Ainda necessrio:
Fornecer endereo absoluto para cada palavra Se algum dia alterar o programa, os endereos de todas as palavras subsequentes tero de ser alterados. Soluo: Usar endereos simblicos.
Linguagem de Montagem
Rtulo FORMUL Operao LDA ADD ADD STA Operando I J K N
I J
K N
DATA DATA
DATA DATA
2 3
4 0
Atividade
Procurar pela ISA - Instruction set Architecture dos processadores Pentium ARM
Exerccios de Fixao
23- O que so operaes de converso? 24- O que so operaes de controle do sistema? 25- Qual a diferena conceitual entre saltos e desvios? 26- Defina desvio incondicional e desvio condicional. 27- Explique o funcionamento da instruo ISZ (Increment and skip IF zero). Sugira uma utilizao para ela.
28- Quais as 2 instrues necessrias para realizar chamada de procedimentos? 29- Como realizada a chamada de procedimentos aninhados com pilha? Porque pilhas so preferncias registradores e memria para gerenciar a chamada de procedimentos e a passagem de parmetros? 30 - Resolver os exerccios 9.8, 9.9, 9.10, 9.14, 9.16, 9.17 e 9.19 do Stallings ( 5 o Edio)