Programa de Ensino 20082
Aprovado pelo Departamento em: 25-6-2008
- Identificação:
- Disciplina: INE5309 - Linguagem Assembly (b2)
- Carga horária: 72 horas-aula
Teóricas: 36
Práticas: 36
- Período:
Início da oferta da disciplina até a presente data
- Curso(s):
- Ciências da Computação (208)
- Requisito(s):
- Ciências da Computação (208)
- INE5368 - Análise Numérica I
- Ementa:
- Características de Linguagem Assembly. Conjunto de instruções: elaboração e implementação de programas através da linguagem assembly de um processador.
- Objetivo(s):
- Geral: Estabelecer a noção de modelo de programação (programmer’s view) de um sistema computacional e mostrar o papel da linguagem de montagem como formato intermediário para geração de código.
- Específicos:
- Familiarizar-se com a cadeia de ferramentas de programação de sistemas (compilador, montador, ligador, carregador, simulador do conjunto de instruções e depurador).
- Codificar pequenos programas na linguagem de montagem de um processador escolhido e executá-los em um simulador de seu conjunto de instruções.
- Conteúdo Programático:
- Introdução à programação de sistemas [10 horas-aula]
- Representações de código: linguagem de alto nível, linguagem de máquina, arquivos-objeto e arquivos executáveis.
- Cadeia de ferramentas: compilador, montador, ligador, carregador, simulador, depurador.
- Aplicações e desvantagens de linguagens de montagem.
- Modelo de programação do sistema (“programmer’s view”) [28 horas-aula]
- Registradores, memória, conjunto de instruções e modos de endereçamento.
- Uso de memória: segmento de dados, segmento de pilha e segmento de código.
- Subprogramação [20 horas-aula]
- Convenção de chamada de procedimentos: salvamento e recuperação de contexto, layout da pilha, chamadas recursivas.
- Exceções e interrupções [14 horas-aula]
- Registradores de controle.
- Noções básicas sobre tratamento de exceções.
- Bibliografia Básica:
- David A. Patterson and John L. Hennessy, “Computer Organization and Design: The Hardware/Software Interface”, 3rd edition, Morgan Kaufmann Publishers, San Francisco, California, USA, 2005. (ISBN 1-55860-604-1)
- David A. Patterson and John L. Hennessy, “Computer Organization and Design: The Hardware/Software Interface”, 2nd edition, Morgan Kaufmann Publishers, San Francisco, California, USA, 1998. (ISBN 1-55860-428-6)
- Bibliografia Complementar:
- Dominic Sweetman, “See MIPS Run”, Morgan Kaufmann Publishers, San Francisco, California, 1999. (ISBN 1-55860-410-3)