Arquitetura e Organização de
Computadores 2
Introdução
High-level
language
program
(in C)
swap(int v[], int k)
{int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}
Abstração
C compiler
•
Descendo no nível
de abstrações
revelam-se outras
informações
Assembly
language
program
(for MIPS)
swap:
muli $2, $5,4
add $2, $4,$2
lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31
Assembler
Binary machine
language
program
(for MIPS)
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000
Objetivos
• Os aluno devem adquirir conhecimentos para a
programação em linguagem Assembly, através do estudo
de um microprocessador típico, quanto às suas unidades
internas, interface de sistema através dos barramentos de
endereço, dados e controle.
• Devem conhecer detalhes das instruções desse
microprocessador típico, quanto ao: formato,
endereçamento de memória e registradores, codificação, e
operações realizadas; bem como do formato das instruções
e pseudo-instruções em Assembly; e
• o uso de programas de depuração (debug) e de montagem
(assembler).
Ementa
• A disciplina deve proporcionar o conhecimento de técnicas de
programação em linguagem Assembly, e para tanto é usado um
microprocessador típico para o estudo do seu conjunto de
instruções, como exemplo.
• Devem ser apresentados os conceitos de programação em
Assembly, quanto aos elementos que compõem um comando,
símbolos, rótulos, representação numérica, pseudo-instruções; e
ambientes de programação e depuração de linguagem Assembly.
• A programação ao nível de linguagem Assembly deve ser
exemplificada para os diversos aspectos de programação tais como,
operações aritméticas e lógicas, controle, procedimentos e
estruturas de dados, interrupções, exceções e hierarquia de
memória, fazendo uma comparação com implementações em
linguagem de alto nível.
Tópicos
Os tópicos a serem abordados são:
1. Introdução aos microprocessadores e sistemas
computacionais;
2. Estudo da arquitetura de um microprocessador típico;
3. Representação de programas em linguagem de máquina e
Assembly ;
4. Ambientes de programação e depuração em linguagem
Assembly ;
5. Operações aritméticas e lógicas, controle, procedimentos
e estruturas de dados, em Assembly;
6. Interrupções, exceções e hierarquia de memória.
Avaliação
• Nota 1: média de 2 provas (prova1 no meio do semestre e
prova2 no final do semestre) (peso 70%)
(podendo uma das notas, de prova substitutiva, a ser realizada
no final do semestre).
• Nota 2: exercícios ao longo do semestre (peso 30%)
• Recuperação: 1 prova no início do semestre seguinte com
peso 100%
Bibliografia
Principal:
• Kip Irvine – Assembly Language for Intel-Based
Computers, 5th edition. USA, Prentice-Hall, 2007.
Complementares:
• David A. Patterson & John L. Hennessy – Computer
Organization & Design – The Hardware/Software
Interface, 3rd Ed., Morgan Kaufmann Publishers, USA,
2005.
• John L. Hennessy & David A. Patterson – Computer
Architecture – A Quantitative Approach, 3rd Ed., Morgan
Kaufmann Publishers, USA, 2003.
Download

Arquitetura e Organização de Computadores 2