Sistemas Embebidos I , Tiago Miguel Dias ISEL, ADEETC - Secção de Electrónica e Telecomunicações e de Computadores
|
|
- Aurélia Vasques Santana
- 6 Há anos
- Visualizações:
Transcrição
1 Sistemas Embebidos I Licenciatura em Eng. de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores Mestrado em Engenharia de Electrónica e Telecomunicações
2 1. Conceito de Programa À descrição de um algoritmo através de uma linguagem de programação que possa ser interpretada por um computador dá-se o nome de programa. As linguagens de programação agrupam-se em três grandes famílias: Linguagem Máquina código das instruções em formato binário; Linguagem Assembly codificação das instruções usando mnemónicas; Linguagem de Alto-Nível codificação das instruções com vocabulário próximo das linguagens naturais. O aumento da complexidade dos algoritmos verificado nos últimos anos inviabiliza a escrita de programas totalmente em linguagem assembly. Devido à evolução das ferramentas de compilação, hoje em dia a maior parte do código de um programa é escrito em linguagem de alto-nível. Contudo, algumas das partes mais críticas do programa são ainda escritas em assembly e posteriormente ligadas ao resto do programa. 2
3 2. Modularização O desenvolvimento de um programa moderno é uma tarefa morosa e difícil, dada a complexidade dos algoritmos a implementar. Por este motivo, os programas são estruturados em módulos independentes e com funções bem definidas que são posteriormente interligados para se atingir a solução final para o problema. A modularização de um programa apresenta ainda as seguintes vantagens: Facilita a detecção de erros o erro fica contido a um módulo sendo mais simples e rápido identificar o módulo responsável pelo erro; Teste dos módulos individualmente reduz a complexidade do teste e permite começar a testar o programa antes de estar concluído; Manutenção do programa permite a correcção de erros, optimizações e acrescento de novas funcionalidades módulo a módulo, reduzindo a probabilidade de essa manutenção ter consequências imprevistas noutras partes do programa; Desenvolvimento independente de módulos simplifica o trabalho em equipa devido a permitir a atribuição de um/alguns módulos a cada elemento da equipa; Reutilização de código. 3
4 3. Estrutura de um Programa A estrutura típica de um programa modular assenta numa aproximação top-down, em que a solução para o problema a resolver passa pela sua decomposição em subproblemas de menor complexidade resolvidos de forma independente. xpto Programa rotina a rotina b rotina c rotina d rotina e rotina f rotina g rotina h rotina i Rotinas Folha rotina j 4
5 3. Estrutura de um Programa Cada módulo corresponde à resolução de um sub-problema, estando os sub-problemas de maior complexidade localizados nos níveis superiores da pirâmide, e pode ser reutilizado para a resolução de sub-problemas de maior ou igual complexidade. Os módulos que compõem um programa são designados genericamente por rotinas e consistem em blocos de código que implementam um dado algoritmo. Se uma rotina não invoca outra qualquer rotina denomina-se de rotina folha. As rotinas classificam-se em: Subrotinas blocos de código em assembly; Procedimentos blocos de código que não devolvem um resultado; Funções blocos de código que devolvem um resultado quando invocados. Em C/C++ apenas existem funções, quer devolvam ou não um valor quando são invocadas. 5
6 4. Função Em C/C++ uma função é definida por um cabeçalho seguido de um corpo, que consiste no conjunto de instruções entre {}. tipo_de_devolução nome(lista_de_parâmetros) No cabeçalho de uma função, que corresponde à sua interface, são indicados: o tipo do valor calculado ou devolvido pela função. Caso a função não calcule nada, é necessário colocar a palavra-chave void no lugar do tipo de dados devolvido. De notar que uma função em C/C++ só pode ter uma saída; o nome da função, que especifica o nome a ser usado para invocar a função; a lista de parâmetros da função, em que cada parâmetro é representado por um par tipo nome, sendo os pares separados por vírgulas. Cada parâmetro é uma variável local automaticamente iniciada com o valor do argumento respectivo usado para cada invocação da função. A definição de uma função deve ser única e indica a sua interface (i.e., como se utiliza a função e que nome tem) e a sua implementação (i.e., como funciona). Para que uma função possa ser utilizada num programa é necessário que a sua definição/declaração se encontre antes da primeira utilização. 6
7 Blocos de código escritos em linguagens de programação diferentes ou compilados/assemblados com ferramentas diferentes podem não permitir a interligação entre módulos. Para garantir a compatibilidade é preciso cumprir alguns requisitos quanto a: Utilização dos registos; Utilização do stack; Forma de passagem de parâmetros a rotinas; Forma de retorno de valores de rotinas. Na arquitectura ARM este conjunto de regras recebe o nome de Advanced Procedure Call Standard (APCS). A APCS pode apresentar algumas variantes consoante o sistema para o qual se está a desenvolver o código: espaço de endereçamento, reentrância do código, verificação do stack, implementação de instruções em vírgula-flutuante, 7
8 Utilização dos registos Os 16 registos visíveis ao programador (r0-r15) encontram-se agrupados em três classes consoante a sua função na invocação/retorno de funções: r0 a r3 São utilizados para passar parâmetros a rotinas. A norma não obriga a preservar o conteúdo destes registos entre chamadas a rotinas, pelo que caso tal seja necessário deve ser o programador a fazê-lo antes de invocar a rotina. r4 a r8 (r10) Estes registos são usados pelas rotinas para armazenar valores temporariamente aquando da sua execução. Contudo, o seu conteúdo deve ser preservado entre chamadas a rotinas, pelo que o programador deve guardar/repor o conteúdo dos registos utilizados na entrada/saída da rotina. r9 (r11) a r15 Estes registos desempenham uma função específica pelo menos durante algum tempo e numa das variantes da APCS. Os registos r14 (LR) e r15 (PC) estão comprometidos com a arquitectura do processador devido à instrução BL, e o registo r13 (SP) é usado como ponteiro para o stack. 8
9 Utilização dos registos Registo Nome APCS Função APCS r0 a1 Primeiro argumento r1 a2 Segundo argumento r2 a3 Terceiro argumento r3 a4 Quarto argumento r4 v1 Primeira variável em registo r5 v2 Segunda variável em registo r6 v3 Terceira variável em registo r7 v4 Quarta variável em registo r8 v5 Quinta variável em registo r9 v6 Sexta variável em registo r10 v7 Sétima variável em registo r11 fp Frame pointer r12 ip Intermediate pointer / Oitava variável em registo r13 sp Stack pointer (aponta para a última posição ocupada do stack) r14 lr Link register (guarda o endereço de retorno da rotina) r15 pc Program counter (aponta para a próxima instrução a executar) 9
10 Utilização do stack O stack é uma zona de memória dedicada para guardar dados temporariamente (salvaguarda do contexto do processador, parâmetros e variáveis locais de rotinas) com uma organização first-in-last-out (FILO) e apenas duas operações associadas: push e pop. O stack é implementado à custa de um bloco de memória alocado junto ao extremo superior do espaço de endereçamento do programa e de um ponteiro para endereçamento dessa zona de memória, o stack pointer. A execução de um push guarda um valor em stack e actualiza o stack pointer de modo a este passar a referenciar um endereço de memória inferior. A execução de um pop retira um valor do stack e actualiza o stack pointer de modo a este passar a referenciar um endereço de memória superior. Habitualmente o stack pointer referencia sempre o último valor guardado em stack, pelo que se diz que o stack é do tipo full descending. 10
11 Utilização do stack Antes Depois Antes Depois sp sp x x sp sp x x Endereços cresecentes Endereços cresecentes Guardar dados (push) Recuperar dados (pop) 11
12 Passagem de parâmetros As regras para passagem de parâmetros a rotinas segundo a APCS são: Os tipos de dados dos parâmetros a passar à função são definidos pela linguagem de programação utilizada. Em C/C++ os tipos de dados elementares bool, char, short, int, long e pointer ocupam 8, 8, 16, 32, 32 e 32-bit, respectivamente; Todos os parâmetros a passar à rotina ocupam uma word (32-bit). Os parâmetros de dimensão inferior são convertidos em word; Os parâmetros a passar à rotina formam uma lista ordenada pela ordem em que são escritos; As primeiras quatro (4) words são passadas nos registos r0-r3 e as restantes em stack a partir do endereço de memória apontado por SP; A rotina invocada não é obrigada a manter o conteúdo dos registos r0 a r3. 12
13 Passagem de parâmetros Exemplo: void xpto(int a, char b, short c, int d, char *e, int f); r0 a r2 c f sp r1 b r3 d e sp Endereços cresecentes Memória 13
14 Retorno de valores A APCS define três formas distintas para o retorno de valores de rotinas consoante o tipo de dados a devolver: No registo r0 Quando o tipo de dados a devolver tem uma dimensão igual ou inferior a uma word. Isto significa que qualquer tipo de dados básico é devolvido em r0, assim como estruturas que ocupem menos que 4-byte. Exemplo: struct { char a, b, c, d; } No par de registos r0-r1 Quando o valor a devolver ocupa 8-byte. Em memória Quando o tipo de dados a devolver consiste numa estrutura de dados com dimensão superior a 4-byte. Neste caso particular, é passado como argumento em r0 o endereço base da estrutura, que toma o nome de parâmetro escondido. A alocação do espaço em memória ocupado pela estrutura é responsabilidade da rotina que invoca a subrotina. 14
15 Prólogo e Epílogo A escrita de rotinas que cumpram as regras da norma APCS implica a preservação do conteúdo dos registos r4 a r14 alterados pela rotina. A única forma de preservar estes valores consiste em guardá-los em stack, que é um procedimento complexo dado o stack ser acessível através do registo r13 (SP). Por outro lado, a utilização de variáveis locais à rotina aumenta o tamanho do stack, que deve ter a capacidade original aquando do retorno da rotina. A forma de ultrapassar este problema consiste na utilização do registo r12 (IP) para guardar o valor original de SP em stack e no recurso à instrução store multiple para optimizar o acesso à memória, o que consiste no prólogo da rotina. O epílogo da rotina repõem não só o conteúdo dos registos de uso geral guardados em stack mas também do SP, o que liberta toda a memória alocada pela rotina. 15
16 Prólogo Epílogo IV. Suporte para Linguagens de Alto Nível Prólogo e Epílogo mov ip, sp stmfd sp!, {regs, fp, ip, lr, pc} sub fp, ip, #4 ldmea fp, {regs, fp, sp, pc} É apenas guardado para uso do debugger! Antes Depois Antes Depois sp pc lr ip = sp fp r10... r4 fp sp fp sp pc lr ip = sp fp r10... r4 pc lr sp fp r10 Memória Memória... 16
17 Prólogo e Epílogo: casos especiais Rotinas folha que usem apenas os registos r0 a r3 Rotinas que não invoquem quaisquer outras rotinas (LR não é alterado), que não declarem variáveis locais (SP não é alterado) e que não modifiquem o conteúdo de registos que não r0 a r3 já respeitam a norma APCS, pelo que não precisam de ter um prólogo nem um epílogo. Rotinas com lista de parâmetros variável A passagem parâmetros é executada de acordo com as regras gerais de passagem de parâmetros: os quatro primeiros parâmetros são passadas nos registos r0-r3; os restantes parâmetros são passados em stack pela ordem inversa. Para optimizar o algoritmo de acesso aos parâmetros, a utilização destas rotinas requer habitualmente que os parâmetros passados à rotina ocupem posições de memória contíguas. Como tal, o prólogo destas rotinas copia o conteúdo dos registos r0 a r3 para stack antes de salvaguardar o conteúdo dos registos de uso geral alterados pela rotina. O epílogo não requer quaisquer alterações. 17
18 Prólogo e Epílogo: casos especiais Antes Depois Rotinas com lista de parâmetros variável xpto (a, b, c, d, e, f,, z); sp param n... param 4 r3 r2 1 2 mov ip, sp stmfd sp!, {r0-r3} stmfd sp!, {regs, fp, ip, lr, pc} r1 r0 pc lr sp 3 sub fp, ip, #20 ip = sp fp 4 ldmea fp, {regs, fp, sp, pc} reg x+k reg x Endereços cresecentes 18
MICROPROCESSADORES 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 maisData types. In C: char. short. int/long. double/long long AC 2017/2018. Pedro Serra / Sérgio Ferreira
x86 Data types In C: char short int/long double/long long 2 O stack O stack cresce em direção a endereços de memória menores Instruções fundamentais: push, pop 0xFF90 0xA331 0xFF8E 0xFF8C 0xFF8A 0x4712
Leia maisProcedimentos e Gestão de Subrotinas
5 Procedimentos e Gestão de Subrotinas Wait a minute, Doc. Are you telling me you built a time machine out of a DeLorean? Marty McFly para o Dr. Brown no filme de 1985, Back to the future O desenho de
Leia maisSCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Leia maisPARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR
PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n
Leia maisA Necessidade de reusar soluções
A Necessidade de reusar soluções Conceito de módulo Módulo é todo elemento construtivo de um dispositivo, mecanismo ou máquina que pode possui uma interface bem definida de uso e que pode ser reutilizado
Leia maisFCA - Editora de Informática xv
Índice Geral Agradecimentos ix Prefácio xi Índice das Simulações xxv 1 - Introdução ao mundo dos computadores 1 1.1 O computador como ferramenta... 2 1.2 A importância dos computadores... 4 1.3 Processamento
Leia maisMicroprocessadores I ELE Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS -
Microprocessadores I ELE 1078 Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS - 9.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência
Leia maisClassificação das linguagens de programação
Introdução Linguagem É um meio de comunicação entre pessoas. Faculdade de expressão audível e articulada do homem. Conjunto de sinais falados, escritos ou gesticulados de que se serve o homem para demonstrar
Leia mais08/08/2011. Pilha. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Pilha. O que é? Para que serve?
Pilha SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Pilha O que é? Para que serve? 2 1 Rotina A 1 print A 2 call C 3 call B 4 call D Rotina B 1 call C 2 print B 3 call D 4 call C
Leia maisProcedimentos. Sistemas de Computação
Procedimentos Chamada de Procedimentos Utilização de procedimentos: Facilitar entendimento do programa Reutilização de código Passos necessários para execução de um procedimento: Os parâmetros a serem
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 maisProgramação I A Linguagem C. Prof. Carlos Alberto
Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada
Leia maisDECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.
DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos Apresentação Computação e Programação (CP) 2013/2014 Aula 1 Objetivos Ficar a saber: funcionamento da unidade curricular (UC) Computação
Leia maisLinguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Leia maisEstrutura do tema ISA do IA-32
Análise do Instruction Set Architecture (5) x86-64: 64-bit extension to Intel 64: Intel implementation of x86-64 Estrutura do tema ISA do 1. Desenvolvimento de programas no em Linux 2. Acesso a operandos
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Conjunto de Instruções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Material do prof. Sílvio Fernandes - UFERSA
Leia maisWilliam Stallings Arquitetura e Organização de Computadores 8 a Edição
William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 10 Conjuntos de instruções: Características e funções slide 1 O que é um conjunto de instruções? A coleção completa de instruções
Leia mais16. Compilação no Linux
16. Compilação no Linux 16.1 Compilador X Interpretador Um código fonte pode ser compilado ou interpretado. Compiladores e interpretadores tratam o código de maneira diferente. Interpretador: Lê o código
Leia mais- Mapa de memória de um processo - Ponteiros
1 MCTA028 Programação Estruturada - Mapa de memória de um processo - Ponteiros Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-2018 2 Alocação de
Leia maisArquitetura e Organização de Computadores
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes
Leia maisINSTITUTO SUPERIOR TÉCNICO. Arquitectura de Computadores (ACom)
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Departamento de Engenharia Informática Arquitectura de Computadores (ACom) LEIC-A, MEIC-A Acetatos das Aulas Teóricas Versão 1.0 - Português Aula
Leia maisAULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 05: Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE SÃO PROCEDIMENTOS? Procedimentos são um conjunto
Leia maisSEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES
SEL 0415 Aula 11 Microcontrolador 8051 Parte 3 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 415 INTERRUPÇÃO Estrutura de Interrupção do 8051 n 5 Fontes [ 2 Externas
Leia mais2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29
Índice Geral Agradecimentos... vii Prefácio... ix Índice Geral... xiii Índice das Simulações... xxiii Índice das Figuras... xxvii Índice das Tabelas... xli Índice dos Programas... li 1 - Introdução ao
Leia maisExecução detalhada de instruções
MIEI Sistemas de Computação 2015/16 Execução detalhada de instruções TPC4 + Guião Teatral Alberto José Proença ------------------------------------------------------------------------------------------------------------------------------------------------
Leia maisConceitos de Programação Orientada por Objectos. Rui Camacho Programação 2
Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas
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 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 maisImplementação de subprogramas
Implementação de subprogramas Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisNível da Arquitetura do Conjunto das Instruções
Fluxo Seqüencial de Controle e Desvios (1) Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Fluxo
Leia maisExecução detalhada de instruções
LEI Sistemas de Computação 2014/15 Execução detalhada de instruções TPC3 + Guião Teatral Alberto José Proença ------------------------------------------------------------------------------------------------------------------------------------------------
Leia maisConjunto de Instruções MIPS Parte III
Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Parte III Transferência de Dados Lógicas Controle Prof. Sérgio Adaptado dos slides de Sistemas Processadores do Prof. Frank Torres
Leia maisApresentação. Informação geral + Conceitos iniciais
Apresentação Informação geral + Informação geral Página da cadeira Objectivos principais Compreender a importância dos algoritmos e dos programas de computador para a resolução de problemas em engenharia.
Leia maisImplementando subprogramas
Implementando subprogramas Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisArquitectura de Computadores 2007/2008 2º Semestre 1º Teste (A) - 30/04/2008. Folha de Respostas
Arquitectura de Computadores 00/00 º Semestre º Teste (A) - 0/0/00 Número: Nome: INSTRUÇÕES: - A duração da prova é de, horas. - Responda apenas nesta Folha de Respostas ; nada mais será recebido. - Identifique
Leia maisO que é uma variável?
Escopo, Ligação e Ambiente de Execução mleal@inf.puc-rio.br 1 O que é uma variável? Uma variável pode ser definida como uma tupla r nome é um string usado para
Leia maisModulo 12: alocação dinâmica de memória
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 12: alocação dinâmica de memória Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro porque e como utilizar a alocação dinâmica funções: malloc (
Leia maisNível do Conjunto de Instruções Prof. Edson Pedro Ferlin
1 Definições Nível ISA (Instruction Set Architecture). Está posicionado entre o nível da microarquitetura e o nível do sistema operacional. É a interface entre o software e o hardware. Nesse nível está
Leia maisMicroprocessadores 1º Ano - LECOM. Universidade do Minho Dept. De Electrónica Industrial
Microprocessadores 1º Ano - LECOM Universidade do Minho Dept. De Electrónica Industrial 1 Interrupções: Motivação Pretende-se desenvolver um sistema que sintetize uma onda quadrada com um frequência de
Leia maisArquitecturas Alternativas. Java Virtual Machine
Arquitecturas Alternativas Java Virtual Machine Compilação da linguagem Java A linguagem Java é uma linguagem interpretada que é executada por uma máquina virtual software denominada JVM (Java Virtual
Leia maisSSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL MODULARIZAÇÃO. Profa. Dra. Milena Guessi Margarido
SSC 301 - INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL MODULARIZAÇÃO Profa. Dra. Milena Guessi Margarido (milena@icmc.usp.br) MODULARIZAÇÃO Um problema complexo é melhor abordado se for dividido primeiramente
Leia maisInfraestrutura de Hardware. Funcionamento de um Computador
Infraestrutura de Hardware Funcionamento de um Computador Computador: Hardware + Software Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é
Leia maisArquitetura de Microprocessadores
Arquitetura de Computadores UNIDADE 4 Arquitetura de 05-02-2019 Sumário Arquitetura de um microprocessador; Acesso à memória; A arquitetura de von Neumann apenas mostra a conceção ideológica do que deveria
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 maisESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018
ESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018 Apontadores O que é um apontador? Variável que contém
Leia maisESTRUTURA DOS SISTEMAS OPERACIONAIS
LISTA 01 NOME: NOME: NOME: ESTRUTURA DOS SISTEMAS OPERACIONAIS 01. O que vem a ser o KERNEL de um sistema operacional? 02. Uma das maneiras de comunicar-se com o KERNEL são através da linguagem de comandos
Leia maisCapítulo 6 Nível do Sistema Operacional
Capítulo 6 Nível do Sistema Operacional - Sistema Operacional: Programa que, do ponto de vista do programador, adiciona uma grande quantidade de instruções e funcionalidades bem além das disponibilizadas
Leia maisSub-rotinas David Déharbe
Sub-rotinas David Déharbe 1 1 Objetivos da aula Os conceitos de sub-rotina, funções e procedimentos; Como usar sub-rotinas em C: parâmetros de sub-rotinas: parâmetros formais e parâmetros efetivos. passagem
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
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 maisLinguagens de Programação. Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio
Linguagens de Programação Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Nomes Forma mais simples de abstração Um nome é um caracter
Leia maisALOCAÇÃO DINÂMICA DE MEMÓRIA
INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador
Leia maisEEC2104 Microprocessadores
EEC2104 Microprocessadores Edição 2005/2006 Arquitectura de um microprocessador básico (Qual o hardware necessário para executar instruções e poder chamar subrotinas?) Uso da memória Guardar instruções
Leia maisLinguagens de Programação
Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas
Leia maisArquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Leia maisCompiladores. Gerência de Memória
Compiladores Gerência de Memória Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Arquivo de destino Análise Otimização Geração de Código Intermediário Geração de Código Final Síntese
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 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 maisCompiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisIntrodução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores
Introdução à programação em PASCAL Aula de 22/10/2001 Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Conteúdo Conceito de linguagem de programação O processo
Leia maisIntrodução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 09 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação A linguagem C, como qualquer outra linguagem de programação, permite
Leia maisMicrocontrolador Assembly UTFPR / DAELN Microcontroladores 1 Prof. Gabriel Kovalhuk
Assembly 8051 Num sistema microprocessado, geralmente, não existe um sistema operacional; O programa desenvolvido pelo programador deve cuidar tanto da lógica do programa, bem como da configuração e acesso
Leia maisFunção Fundamental do SO
Função Fundamental do SO Gestão do Hardware Uma das funções fundamentais do sistema operativo é gerir os recursos do hardware de um modo o mais transparente possível ao utilizador Recursos principais a
Leia mais14/3/2016. Prof. Evandro L. L. Rodrigues
SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Tópicos do curso Conceitos básicos - Aplicações e utilizações dos microcontroladores
Leia maisMicroprocessadores 1º Ano - LECOM
Microprocessadores 1º Ano - LECOM Universidade do Minho Dept. De Electrónica Industrial 1 Interrupções: Motivação Pretende-se desenvolver um sistema que sintetize uma onda quadrada com um frequência de
Leia maisAula 05. Modularização Função Subrotina Recursividade
Logo Aula 05 Modularização Função Subrotina Recursividade 2 Modularização A modularização é um processo que aborda os aspectos da decomposição de algoritmos em módulos. Módulo é um grupo de comandos, constituindo
Leia maisLinguagens de Programação Aula 11
Linguagens de Programação Aula 11 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções
Leia maisModularidade - Funções e Procedimentos
Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada
Leia maisINSTITUTO SUPERIOR TÉCNICO. Arquitectura de Computadores (ACom)
UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Departamento de Engenharia Informática Arquitectura de Computadores (ACom) LEIC-A, MEIC-A Acetatos das Aulas Teóricas Versão 1.0 - Português Aula
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 06 (rogerio@fct.unesp.br) Aula 6 Subprogramas
Leia maisOrganização e Arquitetura de Computadores INTRODUÇÃO
Organização e Arquitetura de Computadores INTRODUÇÃO A Arquitetura de Computadores trata do comportamento funcional de um sistema computacional, do ponto de vista do programador (ex. tamanho de um tipo
Leia maisCPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados
CPU CPU Unidade Central de Processamento Função: leitura, escrita e processamento de dados Constituída por: dispositivos que gerem a entrada (leitura) e saída (escrita) de dados; registos (memórias auxiliares)
Leia maisArquitectura de Computadores (ACom)
Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 08: Título: Sumário: Programação em (programação estruturada, comentários, constantes); Exemplos de
Leia maisAssembly IA32 Procedimentos
1 Procedimentos Assembly IA32 Procedimentos Uma chamada a um procedimento implica a transferência de dados (na forma de parâmetros do procedimento e na forma de valores retornados pelo procedimento) e
Leia maisORGANIZAÇÃO DE COMPUTADORES
ORGANIZAÇÃO DE COMPUTADORES 2017/2018 1 o Semestre 1 o Teste 20 de Novembro de 2018 Duração: 1h15 - O teste é sem consulta e sem calculadora. - Resolva o teste no próprio enunciado, o espaço reservado
Leia maisParadigmas de Linguagens de Programação. Subprogramas
Cristiano Lehrer Características Gerais dos Cada subprograma tem um único ponto de entrada Toda unidade de programa chamadora é suspensa durante a execução do programa chamado, o que implica na existência
Leia maisWilliam Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador
William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 12 Estrutura e função do processador slide 1 Estrutura da CPU CPU precisa: Buscar instruções. Interpretar instruções. Obter
Leia maisAlgoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
Leia maisEstrutura de Dados Conceitos Iniciais
Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Leia maisSEL-433 APLICAÇÕES DE MICROPROCESSADORES I
SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Apresentação do curso Critério de avaliação Média final = 0.8 * MP + 0.2 * ME onde MP = (P1 + P2) / 2 e ME = Notas
Leia maisO estudo da arquitectura de computadores efectua-se com recurso à Abstracção
ARQUITECTURA DE COMPUTADORES O estudo da arquitectura de computadores efectua-se com recurso à Abstracção Podemos ver um computador de várias formas. Para um utilizador normalmente o computador é a aplicação
Leia maisSistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos
Sistemas Embebidos I Licenciatura em Eng. de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores Mestrado em Engenharia Informática e de Computadores
Leia maisPROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO
PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO 1 Módulo 9 - Int. à Programação Orientada a Objectos 2 1. Conceitos básicos A Programação Orientada a Objectos: é uma lógica de programação que procura
Leia maisBits e operações. Sistemas de Computação
Bits e operações Porque utilizar base 2? Representação na base 10 Estamos acostumados Representação natural para transações financeiras (precisão) Implementação eletrônica na base 10 Difícil de armazenar
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 maisBit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256
Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 informações diferentes; Tipos Primitivos são implementados nas
Leia maisExplicação do programa:
Disciplina: Introdução à Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer Índice: Aula10 Sub-rotina: Em algoritmos Em C Sub-rotinas subprograma - programação modularizada Definição:
Leia maisInstituto Superior Politécnico de VISEU. Escola Superior de Tecnologia
1 Estruturada Quando precisamos de escrever código para resolver um determinado problema, dizemos normalmente que precisamos de um "programa" para esse fim. Programa, aqui, é entendido como um conjunto
Leia maisTipos Abstratos de Dados. Estrutura de Dados
Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:
Leia maisRegistradores. Os processadores possuem espaços específicos onde são guardados valores, os chamados registradores.
Os processadores possuem espaços específicos onde são guardados valores, os chamados registradores. Esses espaços são parecidos com variáveis de uma linguagem de programação de alto nível, onde se guarda
Leia maisConjunto de Instruções (ISA) I
Conjunto de Instruções (ISA) I José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-10-16 José Costa (DEI/IST) Conjunto de Instruções
Leia maisInformática II Cap. 4-4
Cap. 4-4 1 Estruturada Quando precisamos de escrever código para resolver um determinado problema, dizemos normalmente que precisamos de um "programa" para esse fim. Programa, aqui, é entendido como um
Leia maisFundamentos de Programação
Fundamentos de Programação ET42G Aula 21 Prof. Daniel Cavalcanti Jeronymo Conversão de tipos. Alocação dinâmica de memória. Recursão. Criação de bibliotecas, arquivos de cabeçalhos e variáveis globais.
Leia maisArquitectura de Computadores
Arquitectura de Computadores Fundamentos (9, 10.1 a 10.3) José Monteiro Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico
Leia maisTEÓRICA. lb $t0, 1($t1)
T1: T2: T3: T4: T5: T6: T7: T: P: TEÓRICA As questões devem ser respondidas na própria folha do enunciado. As questões 1 a 4 são de escolha múltipla, e apenas uma das respostas está correcta, valendo 1
Leia maisPersistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Persistência alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Retrospectiva Quanto ao Tempo de Vida Variáveis Estáticas Variáveis Stack-Dinâmicas Variáveis Heap-Dinâmicas
Leia maisSub Rotinas. Estrutura de Dados. Prof. Kleber Rezende
Sub Rotinas Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Uma dos métodos mais comuns e amplamente utilizados em programação de computadores é o Top-Down. Nesta abordagem um problema é
Leia mais