Uma abordagem para o ensino de
linguagem de montagem, arquitetura
e organização de computadores
Edson Borin e Rafael Auler
Instituto de Computação
Universidade Estadual de Campinas
{edson,auler}@ic.unicamp.br
Agenda
• Motivação e conteúdo da disciplina
• Abordagem desenvolvida
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
2
Resolução de Problemas com Computadores
Problema/Solução
Algoritmos
Programa em Ling. de alto nível
Programa em Ling. de Montagem
Micro-operações, sinais de controle
Circuitos
Dispositivos
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
3
Resolução de Problemas com Computadores
Problema/Solução
Algoritmos
Programa em Ling. de alto nível
Programa em Ling. de Montagem
Arquitetura
Micro-operações, sinais de controle
Circuitos
Dispositivos
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
4
Resolução de Problemas com Computadores
Problema/Solução
Algoritmos
Ling. de Montagem
e Org. Básica de
Computadores
Programa em Ling. de alto nível
Arquitetura
Micro-operações, sinais de controle
Programa em Ling. de Montagem
Circuitos
Dispositivos
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
5
Linguagem de Montagem e
Organização de Computadores
• Visão geral sobre organização de
computadores
• Programação em Linguagem de Montagem
• Conceitos de arquitetura de computadores
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
6
Linguagem de Montagem e
Organização de Computadores
• Curso com 60h: 30h teoria + 30h prática
• Ementa
– Introdução à organização de computadores
– Representação de informações na memória
– Estudo do conjunto de instruções de
processadores
– Desenvolvimento, implementação e testes de
programas usando linguagem de montagem.
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
7
Abordagem desenvolvida
3 partes:
1) O computador IAS
2) Linguagem de montagem do ARM
3) Código de Sistema e Programação de Periféricos
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
8
Parte I: O Computador IAS
Organização muito simples
• Permite programação em linguagem de
máquina (binário e hexadecimal)
• Permite entender como a unidade de controle
coordena os componentes da máquina para
executar as instruções
• Modelo de execução parecida com a dos
computadores modernos: arquitetura von
Neumann.
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
9
Parte I: O Computador IAS
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
10
Parte I: O Computador IAS
Ao final da parte I:
• Visão geral da organização de computadores
• Representação e armazenamento de instruções e
dados durante a execução de programas
• Processo de execução de instruções
• Controle de fluxo de execução
• Conceitos básicos de linguagem de máquina e de
montagem
• Processo de montagem em dois passos
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
11
Parte II: Ling. de Montagem do ARM
• Aprofundar o conhecimento de linguagem de
montagem usando o ISA de uma arquitetura
mais sofisticada
• Conversão de programas em ling. de alto nível
para linguagem de baixo nível
• Memórias modernas (endereçadas a byte) e
representação de dados na memória
– little-endian vs big-endian
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
12
Parte II: Ling. de Montagem do ARM
• flags, transbordamento, execução condicional,
• sub-rotinas e pilha do programa
• Política de uso de registradores
– ABI: registradores callee-save, caller-save
– Ligar programas com código gerado pelo compilador
• Passagem de parâmetros por valor e referência
• Alocação de dados na pilha
• Placa com processadores ARM!
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
13
Parte III: Código de Sistema e
Programação de Periféricos
• Chamadas de Sistema
• Código de Sistema
• Programação de periféricos: UART, GPT,
controlador de interrupções
• Interrupções, exceções
• Trabalho: Escalonador de tarefas preemptivo
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
14
Materiais
• Simulador IAS
– Apostila do IAS
• Placa i.MX53 (ARM)
– 3 placas rodando Linux conectadas na rede
– Acesso remoto
• Simulador ARM
– Programação de sistemas
Uma abordagem para o ensino de linguagem de
montagem, arquitetura e organização de computadores
Edson Borin
Unicamp
15
Uma abordagem para o ensino de
linguagem de montagem, arquitetura
e organização de computadores
Edson Borin e Rafael Auler
Instituto de Computação
Universidade Estadual de Campinas
{edson,auler}@ic.unicamp.br
Download

WEAC-2013 - Instituto de Computação