3. O NIVEL DA LINGUAGEM DE MONTAGEM (Cont.)
|
|
- Luna de Escobar Guimarães
- 6 Há anos
- Visualizações:
Transcrição
1 3. O NIVEL DA LINGUAGEM DE MONTAGEM (Cont.) Com base nas observações feitas anteriormente, de que apenas uma pequena parte do código é responsável por grande parte do tempo gasto na execução, pode-se adotar outra metodologia para desenvolvimento de programas. 1º) O programa é escrito em uma linguagem de alto nível. 2º) Realiza-se um conjunto de medidas para determinar o tempo gasto na execução de cada uma das partes do programa, com o objetivo de descobrir o trecho responsável pelo maior gasto de tempo. Essas medidas em geral incluem o uso do clock do sistema para calcular o montante de tempo gasto na execução de cada procedimento, além de saber as vezes que cada loop é executado, e outras coisas similares. Como exemplo, vamos considerar que 10% do código de um programa sejam responsáveis por 90% do seu tempo de execução. Isso significa que, para uma tarefa que demore 100 segundos, 90 segundos são gastos na execução desse trecho de código que representa 10% do total do programa e 10 segundos são gastos nos restantes 90% do código do programa. A execução do trecho crítico, com 10% do código do programa, pode então ter o seu desempenho melhorado, se o trecho for reescrito em linguagem de montagem. Esse processo e chamado de sintonização, e está ilustrado na Figura 3.1 da aula passada. Nesse caso serão necessários mais 5 programadores-ano para reescrever os procedimentos críticos, o que vai acarretar uma redução de 90 para 30 segundos no tempo de execução desses procedimentos. É interessante e instrutivo fazer uma comparação da metodologia de desenvolvimento de programas que mistura linguagem de alto nível e linguagem de montagem com a metodologia que emprega somente a linguagem de montagem (refira-se de novo a Figura. 3.1). O programa resultante do emprego da última metodologia é aproximadamente 20% mais rápido (33 segundos contra 40 segundos), mas seu custo e três vezes mais alto que o custo da primeira metodologia (50 programadores-ano contra 15 programadores-ano). Além do mais, a vantagem da primeira metodologia e mais do que evidente, pois passar para linguagem de montagem um procedimento já desenvolvido e depurado em linguagem de alto nível é muito mais fácil do que escrever o mesmo código diretamente na linguagem do montador. Em outras palavras, a estimativa de 5 programadores-ano é bastante conservadora, se considerarmos que o código em linguagem de montagem vai ser escrito nas condições mencionadas anteriormente. Se essa tarefa gastar um programador-ano, a relação de custo entre a metodologia de desenvolvimento que mistura linguagem de alto nível e linguagem do montador com a metodologia que desenvolve diretamente na linguagem do montador vai girar em torno de 4 para 1, em favor da primeira. Um programador, que use uma linguagem de alto nível como sua ferramenta de trabalho, não fica preocupado com detalhes do baixo nível da máquina, e as vezes obtém alguns insights sobre o problema que permitem uma melhora real na implementação da solução, que acaba em uma melhora no desempenho. Disciplina: Projeto Lógico de Computadores (5º/6º Sem ). Livro: Andrew S. Tanenbaum Página 1 de 5
2 A situação de um programador de linguagem de alto nível preocupado com a linguagem de montagem é rara de ocorrer, pois esses programadores de linguagem de montagem estão sempre preocupados em manipular as instruções de máquina a fim de economizar alguns ciclos de clock, enquanto que os outros não Formato de Comandos da Linguagem de Montagem Apesar de a estrutura dos comandos de uma linguagem de montagem se parecer muito com a estrutura da instrução de máquina que ela representa, as linguagens de montagem para máquinas diferentes tem semelhanças suficientes para permitir uma discussão mais geral desse assunto. A Figura 3.2 mostra fragmentos de programas em linguagem de montagem do Pentium II, do Motorola 680x0 e do (Ultra) SPARC para calcular N = I + J. Fig. 3.2 Fragmentos de programas para calcular N = 1+ J. (a) No Pentium II. (b) No Motorola 680x0. (c) No SPARC.. Em todos os três exemplos, os comandos acima da linha em branco efetuam o cálculo propriamente dito. Os comandos abaixo dessa linha são comandos do montador para reservar memória para as variáveis I, J e N e que não representam simbolicamente qualquer instrução de máquina. Existem vários montadores para a família Intel, cada qual com uma sintaxe diferente. Aqui usaremos, em nossos exemplos, a linguagem de montagem MASM, desenvolvida pela Microsoft. Apesar de nosso foco estar no Pentium II, tudo o que dissermos para esse processador vale para 0386, 0486, o Pentium e o Pentium Pro. Disciplina: Projeto Lógico de Computadores (5º/6º Sem ). Livro: Andrew S. Tanenbaum Página 2 de 5
3 No caso do SPARC, os exemplos terão como base o montador da Sun. Também nesse caso, tudo o que dissermos vai valer para as versões anteriores (ou seja de 32 bits) do SPARC. Em nome da uniformidade, vamos usar caixa alta para designar os códigos de operação e para identificar os registradores (convenção do Pentium II), mesmo sabendo que o montador da Sun usa caixa baixa para representar esses objetos. Os comandos da linguagem do montador têm quatro partes: Um campo para o label; Um campo dedicado à operação (código de operação); Um campo para os operandos, e; Um campo para os comentários. Os labels, cuja função é permitir o uso de nomes simbólicos para endereços de memória, são necessários: Em alguns comandos executáveis, porque esses comandos podem ser o alvo de desvios. Para palavras de dados, a fim de permitir que os dados armazenados lá sejam acessíveis por meio do nome simbólico. Se um comando qualquer tiver um label associado a ele, esse label começa (em geral) na coluna 1. Cada um dos três fragmentos de programa da Figura 3.2 tem quatro labels: FORMULA; I; J, e; N. Observe que as linguagens de montador para a arquitetura SPARC exigem que após cada label exista um caractere dois-pontos, mas o montador da Motorola não especifica esse caractere após o nome do label. O montador da Intel exige que: apenas os labels associados ao código, sejam seguidos de dois-pontos. Os labels associados a dados não precisam desses dois-pontos. Nada há de importante para justificar essa diferença. Os projetistas dos diferentes montadores tem, com certeza, gostos muito diversificados. Nada na arquitetura sugere a adoção de um ou de outro esquema. Uma vantagem da notação que usa os dois-pontos é permitir que o label apareça sozinho em uma linha, com o código de operação aparecendo na coluna 1 da linha seguinte. Esse estilo e muito conveniente para os compiladores. Sem os dois-pontos não há como se manter um label sozinho em uma linha e um código de operação associado a esse label sozinho em outra linha. Em alguns montadores, os labels só podem ter seis ou oito caracteres. Em contraste com isso, as linguagens de alto nível permitem o uso de nomes tão longos quanta se queira. Nomes grandes e bem escolhidos fazem com que os programas fiquem mais legíveis ou mais inteligíveis. Disciplina: Projeto Lógico de Computadores (5º/6º Sem ). Livro: Andrew S. Tanenbaum Página 3 de 5
4 Cada máquina tem obrigatoriamente um conjunto de registradores, cuja identificação é feita de maneira completamente diferente de máquina para máquina. Os registradores do Pentium II têm nomes do tipo EAX, ESX, ECX e por ai vai; Os registradores do Motorola são identificados por DO, 01, 02, entre outros nomes; Os registradores do SPARC têm nomes muito variados. No nosso exemplo, usamos os nomes %R1 e %R2 para identificar dois desses registradores. O campo do código de operação contém ou uma abreviatura simbólica para identificar 0 código de operação - se o comando for uma representação simbólica de uma instrução de maquina - ou um comando para o próprio montador. A escolha dos nomes apropriados para esse campo e simplesmente uma questão de gosto, e projetistas de linguagens de montagem diferentes fazem escolhas completamente diferentes. Os projetistas do montador da Intel decidiram usar o nome MOV tanto para carregar um registrador com um valor vindo da memória quanta para transferir o valor de um registrador para a memória. Os projetistas do montador da Motorola tiveram a mesma ideia e, portanto, nessa maquina o nome MOVE designa essas mesmas duas operações. Em contraste com essa decisão, as projetistas do montador do SPARC decidiram usar o nome LD para a operação de carga de um registrador com um valor vindo da memória, e o nome ST para designar a operação inversa. E sempre bom lembrar que essas escolhas nada têm a ver com o projeto da maquina. Em contrapartida, a necessidade de se usarem duas instruções de maquina, sempre começando com a instrução SETHI para acesso a memória, e uma propriedade inerente a arquitetura SPARC, pois os endereços virtuais têm 32 bits (SPARC Versão 8) ou 44 bits (SPARC Versão 9) e as instruções SPARC podem ter no Maximo 22 bits para dados imediatos. Portanto, são sempre necessárias duas instruções para especificar todos os bits necessários a referenciar um endereço virtual completo. A instrução SETHI %HI(I),%R1 coloca zeros nos 32 bits superiores e nos 10 bits inferiores do registrador R1 (que tem 64 bits), para depois colocar os 22 bits superiores do endereço de I de 32 bits, nas posições de 10 a 31 de R1. A instrução seguinte, LD[%R1 +%LO(I)],%R1, soma o valor em R1 com os 10 bits menos significativos do endereço de 1 para formar o endereço completo de I e, depois disso, busca a palavra da memória armazenada nesse endereço, colocando-a em R1. Em um concurso de beleza, onde se podem atribuir notas de 1 a 10, essas instruções receberiam nota em tomo de -20, mas 0 SPARC não foi projetado para ter uma linguagem de montagem bonita. O objetivo do projeto do SPARC foi obter uma maquina de alta performance, objetivo esse plenamente alcançado. Disciplina: Projeto Lógico de Computadores (5º/6º Sem ). Livro: Andrew S. Tanenbaum Página 4 de 5
5 A família Pentium, o 680x0 e o SPARC suportam operandos de um byte, de uma palavra e operandos longos. Como o montador sabe qual o tamanho a ser usado? Mais uma vez, os projetistas dos montadores optaram por soluções diferentes. No Pentium II, os registradores de tamanho diferente têm nomes diferentes e, sendo assim, o EAX e usado para valores de 32 bits, 0 AX para valores de 16 bits e os registradores AL e AH para valores de 8 bits. Em contraste com essa decisão, os projetistas do montador da Motorola adicionaram a cada código de operação um sufixo que pode ser.l para operandos longos,.w para operandos do tamanho de palavras e.b para operandos do tamanho de bytes, em vez de criarem subconjuntos de nomes para designar registradores de tamanhos diferentes. O SPARC usa códigos de operação diferentes para os diferentes tamanhos de operando (ou seja, LOSS, LDSH e LOSW para carga de bytes com sinal, de meias palavras, e de palavras em um registrador de 64 bits, respectivamente). Todas as três escolhas são validas, porém mais uma vez elas mostram a natureza arbitraria do projeto da linguagem de montagem. Os três montadores também diferem na maneira de reservar espaço para os dados. Os projetistas da linguagem de montagem da Intel escolheram 0 nome OW (Define Word) para indicar essa operação, apesar de o nome.word ter sido mais tarde acrescentado a linguagem como uma alternativa para a mesma operação. O pessoal da Motorola gosta de DC (Define Constant). Já os projetistas do SPARC optaram por.word desde 0 início. Mais uma vez, essas diferenças são arbitrárias. Disciplina: Projeto Lógico de Computadores (5º/6º Sem ). Livro: Andrew S. Tanenbaum Página 5 de 5
COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto
COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto 1 INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas áreas de arquitetura e organização de computadores. As principais
Leia maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisProf. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior
Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Meio pelo qual se pode indicar os passos que devem ser realizados pelo computador para resolver problemas; Através da linguagem,
Leia maisMODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES
MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES Alexandre Lucas Chichosz Graduando em Engenharia da Computação, Faculdades Integradas de Três Lagoas FITL/AEMS Calwann de Souza Freire Graduando em Engenharia
Leia maisMODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES
MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES Alexandre Lucas Chichosz Discente do curso Engenharia da Computação Calwann de Souza Freire Discente do curso Engenharia da Computação Myke Albuquerque Pinto
Leia mais1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é
1. A pastilha do processador Intel 80486 possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é organizado com mapeamento associativo por conjuntos de quatro
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Linguagem de Montagem e Linguagem de Máquina Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Conceitos básicos Linguagem/código
Leia maisPorque usar um montador? Formato de uma linha de código fonte:
Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob
Leia maisArquiteturas RISC e CISC. Adão de Melo Neto
Arquiteturas RISC e CISC Adão de Melo Neto 1 Arquitetura RISC Arquitetura RISC. É um das inovações mais importantes e interessantes. RISC significa uma arquitetura com um conjunto reduzido de instruções
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 CISC RISC MIPS Organização e Arquitetura de Computadores I Sumário Representação de instruções Slide 2 CISC O CISC (Complex Instruction
Leia maisUtilização do montador Daedalus. O montador e os simuladores Formatos de instruções
Utilização do montador Daedalus O montador e os simuladores Formatos de instruções 1 O montador Daedulus! Desenvolvido para os simuladores Ahmes, Ramses e Cesar! Simuladores possuem arquiteturas distintas!
Leia maisSâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina
Sâmia Rodrigues Gorayeb Arquitetura de Computadores Linguagem de Máquina Arquitetura de Computadores Agenda: Linguagem de máquina 1. Introdução 2. Característica 3. Programas Compilados 4. Programas Interpretados
Leia maisNotas de Aula Guilherme Sipahi Arquitetura de Computadores
Notas de Aula Guilherme Sipahi Arquitetura de Computadores Endereçamento O Campo de endereço em uma instrução é pequeno. Para referenciar uma faixa de endereços maior na memória principal, ou em alguns
Leia mais2º Estudo Dirigido CAP 3
2º Estudo Dirigido CAP 3 1. Cite três exemplos de aspecto na definição e implementação de uma arquitetura que são influenciados pelas características do conjunto de instruções? R.: Operações lógicas e
Leia maisLinguagem de Montagem do NeanderX
Universidade Estácio de Sá Curso de Informática Arquitetura de Computadores Linguagem de Montagem do NeanderX 11.5.2006 Geração Programa Executável Linguagens de Programação As linguagens de programação
Leia maisLinguagem de Maquina II. Visão Geral
Linguagem de Maquina II Visão Geral Revisão A linguagem de máquina é composta de seqüências binárias (1's e 0's) São interpretadas como instruções pelo hardware A linguagem de montagem e a linguagem de
Leia maisArquitetura de Computadores. Conjunto de Instruções
Arquitetura de Computadores Conjunto de Instruções Arquitetura do Conjunto das Instruções ISA (Instruction Set Architecture) Traduz para uma linguagem intermediária (ISA) os vários programas em diversas
Leia maisComputadores e Programação (DCC/UFRJ)
Computadores e Programação (DCC/UFRJ) Aula 6: 1 2 3 A necessidade dos programadores escreverem código em linguagem de montagem tem mudado ao longo dos últimos anos: de um programador capaz de escrever
Leia maisMICROPROCESSADORES II (EMA911915) SUB-ROTINAS E PILHA 2 O SEMESTRE / 2018
MICROPROCESSADORES II (EMA911915) SUB-ROTINAS E PILHA 2 O SEMESTRE / 2018 MATERIAL DIDÁTICO Harris & Harris 6.4.6 Procedure Calls Patterson & Hennessy (4a edição) 2.8 Supporting Procedures in Computer
Leia maisção de Computadores I
Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura e Organizaçã ção de Computadores I Aula 2 1. Projeto da Arquitetura
Leia maisIntrodução à Computação: Máquinas Multiníveis
Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Leia maisNEANDERWIN. Algumas características do processador Neander são:
NEANDERWIN O NeanderWin é um simulador da máquina Neander, definida no livro do Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Sagra Luzzatto. A máquina original foi estendida aqui
Leia maisAula 19: UCP: Construindo um Caminho de Dados (Parte III)
Aula 19: UCP: Construindo um Caminho de Dados (Parte III) Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 1 /
Leia maisCONJUNTO DE INSTRUÇÕES
CONJUNTO DE INSTRUÇÕES 1 CARACTERÍSTICAS DE INSTRUÇÕES DE MÁQUINA Quando um programador usa uma linguagem de alto-nível, como C, muito pouco da arquitetura da máquina é visível. O usuário que deseja programar
Leia maisSSC510 Arquitetura de Computadores 1ª AULA
SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura
Leia maisConjunto de Instruções e Modelos de Arquiteturas
Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira
Leia maishttp://www.ic.uff.br/~debora/fac! 1 Conceito de família IBM System/360 1964 DEC PDP-8 Separa arquitetura de implementação Unidade de controle microprogramada Idéia de Wilkes 1951 Produzida pela IBM S/360
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 7ª Aula Pipeline Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Arquitetura CISC CISC Complex Instruction Set Computer Computadores complexos devido a: Instruções
Leia maisOrganização de Sistemas de Computadores
Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =
Leia maisPCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca
PCS-2529 Introdução aos Processadores Prof. Dr. Paulo Sérgio Cugnasca 1 2 Existem 4 esquemas diferentes de E/S possíveis, cada um se aplicando em uma determinada situação. E/S Programada. E/S Acionada
Leia maisUNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES
UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES ESSA APRESENTAÇÃO POSSUI QRCODE PARA ACESSAR INFORMAÇÕES ADICIONAIS AOS SLIDES. Código QR Reader Código QR INTRODUÇÃO A ARQUITETURA DE COMPUTADORES Qual
Leia maisDesenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar
Leia maisArquitetura de Computadores
Arquitetura de Computadores 2018.1 Relembrando... Paralelismo Relembrando... Paralelismo Paralelismo em Instrução Relembrando... Paralelismo Paralelismo em Instrução Paralelismo em Aritmética Relembrando...
Leia maisAULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Leia maisOrganização de Computadores
Organização de Computadores Aula 25 Conjunto de Instruções: Características e Funções Rodrigo Hausen 10 de novembro de 2011 http://cuco.pro.br/ach2034 1/92 Apresentação 1. Bases Teóricas 2. Organização
Leia maisAula 12: Memória: Barramentos e Registradores
Aula 12: Memória: Barramentos e Registradores Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Barramentos e Registradores FAC 1 / 34
Leia maisUnidade de Controle. UC - Introdução
Unidade de Controle Prof. Alexandre Beletti (Cap. 3 Weber, Cap.8 Monteiro, Cap. 10,11 Stallings) UC - Introdução Para gerenciar o fluxo interno de dados e o instante em que ocorrem as transferências entre
Leia maisUniversidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever
Leia maisIntrodução a programação Visão geral
Instituto Federal de Minas Gerais Campus Ponte Nova Introdução a programação Visão geral Professor: Saulo Henrique Cabral Silva Conceitos lógica/algoritmo A lógica é usada no dia a dia das pessoas para
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Unidade Central de Processamento (CPU) Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Baseado nos slides do capítulo
Leia maisCONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)
CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Conhecida pelo PROCESSADOR Conhecida pelo Usuário COMPILADOR LINGUAGEM DE ALTO NÍVEL LINGUAGEM ASSEMBLY 2 INSTRUÇÕES EM ASSEMBLY Para programar
Leia maisPipeline. Prof. Leonardo Barreto Campos 1
Pipeline Prof. Leonardo Barreto Campos 1 Sumário Introdução; Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Caminho de Dados usando Pipeline; Representação Gráfica do Pipeline;
Leia maisIntrodução à Organização de Computadores. Aula 8
SEL-0415 Introdução à Organização de Computadores Set de Instruções Modelos de Arquiteturas Aula 8 Prof. Dr. Marcelo Andrade da Costa Vieira INSTRUÇÕES n Padrão de código binário armazenado em um dispositivo
Leia maisIntrodução. Nível da Linguagem de Montagem. Linguagem de Montagem (2) Linguagem de Montagem (1) Linguagem de Montagem
Nível da Linguagem de Montagem (Aula 15) Linguagem de Montagem Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Introdução Tradutores Programas que convertem um programa
Leia maisNível da Arquitetura do Conjunto das Instruções
Nível da Arquitetura do Conjunto das Instruções (Aula 11) Visão Geral do Nível ISA Antes de deixarmos o hardware (1) 8 2 Antes de deixarmos o hardware (2) 3 ISA (Instruction Set Architecture) Arquitetura
Leia maisDisciplina: Arquitetura de Computadores
Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na
Leia maisProfessor: Dr. Rogério Rodrigues de Vargas.
UNIVERSIDADE ESTADUAL DE SANTA CRUZ DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Bacharelado em Ciência da Computação Software Básico Linguagem de Programação Assembly: Uma introdução no Linux/i386 (AT&T)
Leia maisIntrodução à Computação: Arquitetura von Neumann
Introdução à Computação: Arquitetura von Neumann Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
Leia mais9. Software de Sistema - Montadores (capítulo 9 do livro texto)
9. Software de Sistema - Montadores (capítulo 9 do livro texto) Compiladores Programas de Aplicação Depuradores Usuário Processador de Macro Montador Programas Utilitários Ligadores Carregadores Sistema
Leia maisESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade
ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro do Prof. Dr. Carlos Alberto Maziero, disponível no link: http://dainf.ct.utfpr.edu.br/~maziero
Leia maisCompiladores. Introdução à Compiladores
Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem
Leia maisDisciplina: Introdução à Engenharia da Computação
Colegiado de Engenharia de Computação Disciplina: Introdução à Engenharia da Computação Aula 07 (semestre 2011.2) Prof. Rosalvo Ferreira de Oliveira Neto, M.Sc. rosalvo.oliveira@univasf.edu.br 2 Representação
Leia maisOrganização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções
Capítulo 2 Hennessy Patterson 1 Instruções Linguagem da máquina Vamos trabalhar com a arquitetura do conjunto de instruções MIPS (Micrrocessor without interlocked pipeline stages Micrrocessador sem estágios
Leia maisProgramação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1
Programação de Computadores IV Introdução a Linguagens de Programação Simone Martins simone@ic.uff.br SLIDES CEDIDOS POR BRUNO MARQUES 1 Arquitetura de programação 2 O Que é um Dado? Dado é o elemento
Leia maisExistem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.
Aula 3 SOFTWARE (programas) Um programa (software) consiste em uma sequência de instruções escritas numa linguagem precisa chamada linguagem de programação. Estas instruções são traduzidas em um compilador,
Leia maisLinguagem de Montagem e Assembly. André Luiz da Costa Carvalho
Linguagem de Montagem e Assembly André Luiz da Costa Carvalho Linguagem de Montagem Todo programa para ser executado precisar ser convertido de linguagem fonte (alto nível) para um programa equivalente
Leia maisAula 16: UCP: Conceitos Básicos e Componentes
Aula 16: UCP: Conceitos Básicos e Componentes Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Conceitos Básicos e Componentes FAC 1 / 34
Leia maisMICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1
MICROPROCESSDORES E MICROCONTROLDORES PROV 1 - Solução da Versão 1 (o final são apresentadas as soluções da questão 4 das versões 2 e 3) 1. Na comparação entre as arquiteturas CISC e RISC, faça comentários
Leia maisUnidade Central de Processamento 2. Registradores
Unidade Central de Processamento 2 Registradores Conceitos Fundamentais Arquitetura da CPU Unidade de Controle Registradores Barramento interno Unidade lógica e Aritmética Registradores Conjunto de unidades
Leia maisOrganização de Sistemas Computacionais Processadores: Organização da CPU
Universidade Paulista UNIP Curso: Ciências da Computação Turma: CCP30 Turno: Noturno Disciplina: Arquitetura de Computadores Professor: Ricardo Loiola Alunos: Thiago Gomes dos Santos Matrícula: C63873-0
Leia maisFORMATO DO PROGRAMA FONTE
FORMATO DO PROGRAMA FONTE As declarações do programa fonte são constituídas pelos seguintes campos: 1) Campo do Rótulo: o primeiro caractere deve ser alfabético
Leia maisNivel de Linguagem de Montagem (Assembly)
Nivel de Linguagem de Montagem (Assembly) Orlando Loques setembro 2006 Referências: Structured Computer Organization (capítulo 7), A.S. Tanenbaum, (c) 2006 Pearson Education Inc Computer Organization and
Leia maisRepresentação de Dados (inteiros não negativos)
Representação de Dados (inteiros não negativos) 1 Memória Armazena instruções e dados durante a execução de um programa A memória principal pode ser vista como um array de bytes, cada um com seu endereço
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características
Leia maisArquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções
Arquiteturas de Computadores Princípios e exemplos de conjuntos de instruções Características das aplicações Computação de desktop Ênfase em desempenho de programas com tipos de dados inteiros e ponto-flutuante
Leia maisArquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura
Leia maisArquitetura de Computadores Aula 10 - Processadores
Arquitetura de Computadores Aula 10 - Processadores Prof. Dr. Eng. Fred Sauer http://www.fredsauer.com.br fsauer@gmail.com 1/21 TÓPICOS ORGANIZAÇÃO COMPONENTES BÁSICOS INSTRUÇÃO DE MÁQUINA CICLO DE INSTRUÇÃO
Leia maisAula 14 Funcionamento de Processadores (Visão específica)
Aula 14 Funcionamento de Processadores (Visão específica) Com base nas aulas de Prof. José Delgado (autorizado) Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm
Leia maisAlgoritmos. Prof. Jonatas Bastos Site:
Algoritmos Prof. Jonatas Bastos Email: jonatasfbastos@gmail.com Site: http://jonatasfbastos.wordpress.com/ 1 Dúvidas! p p p Como os computadores entendem os algoritmo? Os computadores não entendem os passos
Leia maisUm Exemplo de Nível ISA: o IJVM. Pilhas. Pilhas. O Modelo de Memória da IJVM. Pilhas de Operandos. Nível ISA
Ciência da Computação Arq. e Org. de Computadores Nível ISA Prof. Sergio Ribeiro Um Exemplo de Nível ISA: o IJVM Objetivo: Introduzir um nível ISA (Instruction Set Architecture), a ser interpretado pelo
Leia maisCompiladores e Computabilidade
Compiladores e Computabilidade Prof. Leandro C. Fernandes UNIP Universidade Paulista, 2013 GERAÇÃO DE CÓDIGO INTERMEDIÁRIO Geração de Código Intermediário Corresponde a 1ª etapa do processo de Síntese
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação
Leia maisPROGRAMAÇÃO I. Introdução
PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação
Leia maisVETORES Motivação AULA 19
AULA 19 VETORES 19.1 Motivação Considere o problema de calcular a média aritmética das notas de 5 alunos de uma disciplina e determinar e escrever o número de alunos que obtiveram nota superior à média
Leia maisSSC304 Introdução à Programação Para Engenharias
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Estrutura de um Computador GE4 Bio GE4Bio Grupo de Estudos
Leia maisArquitetura ARC Prof. Luís Caldas Aula 06 pág.96 a 119
6. ARC- Um computador com arquitetura RISC A CPU (unidade central de processamento), consiste numa seção de dados, que contém registradores, uma unidade lógica e aritmética e uma seção de controle que
Leia maisUniversidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas
Leia maisSistemas Operacionais
Sistemas Operacionais CAP 2: Conceitos de Hardware e Software Prof. MSc. Diego R. Moraes diegorm@anhanguera.com Download de todo conteúdo da disciplina https://sites.google.com/site/diegorafaelmoraes/downloads
Leia maisComputadores e Programação (DCC/UFRJ)
Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo
Leia maisELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR
ELETRÔNICA DIGITAL II AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR acjunior@facthus.edu.br 1º SEMESTRE 2009 CONTEÚDO PROGRAMADO: 1 O que é um computador digital? 2 Como funcionam os computadores 3 O agente
Leia maisOrganização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores
Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos
Leia maisAula teórica 7. Preparado por eng.tatiana Kovalenko
Aula teórica 7 Tema 7. Introdução a Programação Ø Linguagens de Programação Ø LP Java ØEstrutura de um programa em Java ØIdentificadores, variáveis e constantes. ØTipos de dados básicos Preparado por eng.tatiana
Leia maisSistemas Operacionais I
Sistemas Operacionais I Revisão de conceitos Sistemas Operacionais I Dionisio Gava Junior Componentes básicos Componentes Básicos da Tecnologia da Informação Hardware CPU, Memória e Periféricos de E/S.
Leia maisSIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA
SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA Neste trabalho você deverá construir e testar, com a ferramenta JFLAP, uma MT multifita que simula o funcionamento de um computador
Leia maisUCP 8051 (parte 02) Professor Adão de Melo Neto
UCP 85 (parte 2) Professor Adão de Melo Neto Barramento de endereços UCP 85 É unidirecional (6 BITS), porque a informação flui apenas em uma direção, da CPU para a memória ou para os elementos de E/S.
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisConjunto de Instruções e Modelos de Arquiteturas
Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira
Leia maisProf. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo
Prof. Benito Piropo Da-Rin UCP ou microprocessador: Circuito Integrado inteligente (capaz de cumprir diferentes funções determinadas por instruções ) CI capaz de efetuar todas as operações necessárias
Leia maisLinguagem de Montagem Assembly
Linguagem de Montagem Assembly Especificações O programa em Assembly Fica sobre a camada do Sistema Operacional Efetua chamadas ao Sistema Operacional O montador Chama-se Assembler Traduz a linguagem de
Leia maisAntes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções
Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções (Aula 11) Visão Geral do Nível ISA 8 Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos:
Leia maisArquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)
Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) Instruções Comandos utilizados para indicar ao hardware o que deve ser feito Utilizaremos neste curso o conjunto de instruções
Leia maisARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-1 Objetivos Conhecer o processador Compreender os registradores
Leia maisCONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)
CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Constituída de seqüência de zeros (0) e uns (1) Cada instrução em ASSEMBLY constitui-se em um mnemônico (uma forma fácil de se lembra) de uma
Leia maisNível da Linguagem de Montagem
Nível da Linguagem de Montagem (Aula 15) Linguagem de Montagem Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Introdução Tradutores Programas que convertem um programa
Leia maisProf. Leonardo Augusto Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 2 Estrutura de um processador Prof. Leonardo Augusto Casillo Arquitetura de Von Neumann: Conceito de programa armazenado; Dados
Leia mais25/8/2010. Praticamente todas as arquiteturas de computadores fornecem mais de um modo de
Arquitetura de Computadores Conjuntos de Instruções: modos de endereçamento e formatos Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Endereçamento Normalmente, os campos de endereço são
Leia mais2. A influência do tamanho da palavra
PROCESSAMENTO 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante
Leia mais2ª Lista de Exercícios de Arquitetura de Computadores
2ª Lista de Exercícios de Arquitetura de Computadores 1. Descreva as funções desempenhadas pelos escalonadores de curto, médio e longo prazo em um SO. 2. Cite três motivos pelos quais o controle do processador
Leia maisARQUITETURA DE COMPUTADORES
Representação de Dados Professor: Airton Ribeiro de Sousa E-mail: airton.ribeiro@faciplac.edu.br 1 Ao longo dos anos, muitos padrões e convenções foram estabelecidas para determinar certos aspectos da
Leia mais