Arquitetura de Computadores

Slides:



Advertisements
Apresentações semelhantes
Software Básico Silvio Fernandes
Advertisements

Parte 1: Organização de Computadores
Parte 1: Organização de Computadores
Software Básico Silvio Fernandes Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:
Capitulo 6: Entrada e Saída
gerador de código intermediário
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Arquitetura de Computadores
WebDesign Redes de Computadores Aula 05
Introdução à Ciência da Computação Linguagens de Programação.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Arquitetura e organização de computadores.
Linguagem de Montagem Visão geral.
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Software Básico Silvio Fernandes
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
CISC e RISC.
Informática Industrial
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
INTRODUÇÃO À PROGRAMAÇÃO
Sistemas Digitais Microprocessados
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Análise Léxica Supondo o trecho de programa abaixo:
Construção de Compiladores
Linguagens de Programação
Laboratório de Programação de Computadores I
Sincronização e Comunicação entre Processos
Prof. Msc. Raul Paradeda Aula 2 Introdução
Sistemas Operacionais I
Análise Semântica e Representação Intermédia
PROGRAMAÇÃO I UNIDADE 1.
Funcionamento básico de um computador
Representação de Instruções
Estrutura de dados, pseudocódigo
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
Arquitetura de computadores
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Arquitetura de computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Vetores e Matrizes Ameliara Freire
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Geração de Código aula-12-geração-de-código.pdf.
Execução de programas Cap. VIII.
Sistemas Operacionais
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Sistemas Operacionais
Back-End Compilação aula-11-back-end.pdf.
Registradores.
Infra-Estrutura de Software Gerenciamento de Memória.
Software Básico Introdução à Organização de Computadores Capítulo 1 Mitsuo Takaki
Algoritmos e Programação MC102
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
Arquitetura ARM Subrotinas.  Implementar uma sub-rotina requer dois passos: 1.Armazenar o endereço de retorno. 2.Desviar a execução para o endereço da.
Transcrição da apresentação:

Arquitetura de Computadores Ricardo de Sousa Britto Nível da Linguagem de Montagem

Introdução Tradução: Converte um programa fonte em um programa objeto Duas etapas: Geração de programa em linguagem alvo; Execução do programa. Dois tipos: Compilador e Montador Compilador: Linguagem fonte = Alto nível Montador: Linguagem fonte = representação simbólica da linguagem de montagem (Assembly)

Vantagens Código mais eficiente Algumas máquinas podem não ter um compilador Acesso direto aos recursos de nível ISA Uma linha de programa = Uma linha de programa objeto

Desvantagens Maior complexidade de programação Custo maior de desenvolvimento Código não portável

Formato de um comando em Assembly

Campos de uma instrução Assembly Label: Nome simbólico atribuído a um endereço. Operação: Abreviação simbólica do OPCODE. Ex: ADD = soma. Operando: especifica simbolicamente os endereços, registradores ou constantes. Comentários: Documenta o programa. Ignorado pelo montador.

Processo de montagem Montagem: tradução de programa fonte em programa objeto. Problema da referência futura: Desvios para posições representadas por símbolos ainda indefinidos Solução: Tradução em Dois passos

Passo 1 Analisa-se as instruções, até encontrar uma pseudo-instrução END. Usando uma tabela de códigos de operação, o montador constrói uma tabela de símbolos. Tabela de símbolos é utilizada no Passo 2 da montagem.

Tabela de Símbolos O contador de localização de instrução (ILC), zerado no início do passo 1, é incrementado do comprimento da instrução corrente. O ILC provê o endereço de execução da instrução montada. A tabela de símbolos é com base no ILC

Formato de uma entrada da TS

Passo 2 Gera o programa objeto. Produz a expansão binária da instrução a partir das tabelas. Produz informações necessárias ao procedimento de ligação. Gera mensagens de erro caso estes existam no programa fonte.

Ligação e Carga Programas podem ser constituídos de vários procedimentos. Todos os procedimentos devem ser ligados em um único programa a ser executado. O software que faz a ligação dos procedimentos é chamado de ligador. É produzido um único programa, o Módulo Absoluto de carga, a partir de vários módulos objetos

Ligação e Carga Módulos objetos são obtidos a partir da tradução dos vários procedimentos. Um software denominado carregador carrega o Módulo de carga na memória principal para posterior execução.

Ligação e Carga

Ligação e Carga O ligador une todos os modelos objetos em um único espaço de endereçamento. As referências a endereços devem ser atualizadas (Problema de realocação) Quando um procedimento A chama um B, o endereço absoluto de B só conhecido após a ligação (Problema da referência externa)

Tarefas do Ligador Construir uma tabela com todos os módulos objeto e seus respectivos comprimentos. Atribuir um endereço de carga. Adicionar uma constante de relocação ao endereço inicial de cada módulo. Encontrar todas as instruções que referenciam outros procedimentos e inserir nelas endereço absoluto dos mesmo

Módulos objeto

Módulo de carga

Funcionamento do Ligador A maioria dos ligadores requer 2 passos: Ler todos os módulos objeto, construir uma tabela de nomes e comprimentos de módulos e uma tabela global de símbolos internos e externos Ler os módulos objeto, relocá-los e ligá-los para formar um único módulo

Estrutura de um módulo objeto

Tabela de módulos objeto Comprimento Endereço A 400 100 B 600 500 C 1100 D 300 1600

Ligação Dinâmica Ligação de procedimentos compilados separadamente no momento em que esses são chamados pela primeira vez. Procedimentos raramente utilizados são ligados só se necessários. Melhor aproveitamento da memória virtual.