 |
18/02: |
Apresentação.
Organização
das disciplinas práticas do BCC.
Visão geral de MAC-211.
Números binários e hexadecimais.
Notas de
aula.
|
 |
20/02: |
Arquitetura dos processadores da família x86.
Notas de
aula.
|
 |
25/02: |
Chamadas ao S.O. e programa "Hello,
World!" em linguagem de montagem.
Instruções de desvio incondicional, comparação e desvio condicional.
Notas de
aula.
|
 |
27/02: |
Mais programas com chamadas ao S.O.: programa que lê um arquivo e
escreve o conteúdo do arquivo na saída padrão (tela) e
programa que copia a entrada padrão
para a saída padrão.
|
 |
11/03: |
Instruções aritméticas (ADD, SUB, INC, DEC) e lógicas (AND, OR,
XOR). Tipos de operandos: registradores, constantes imediatas e
dados na memória (da forma [endereço + reg_base + escala *
reg_indice]).
|
 |
13/03: |
Programa que copia a entrada padrão para a saída padrão,
invertendo a ordem dos caracteres lidos.
Os flags da CPU x86. Representação de números inteiros com sinal.
|
 |
18/03: |
Desvios condicionais. Comparações de números com sinal e sem sinal.
|
 |
20/03: |
Instruções de deslocamento (shift), multiplicação e divisão.
Funções em linguagem de montagem.
|
 |
25/03: |
A sintaxe AT&T, usada pelo as : diferenças em
relação à sintaxe Intel usada pelo nasm .
Exemplo de recursão em linguagem de montagem: hanoi.asm (programa que
resolve o problema das torres de Hanoi). Aqui
você encontra o mesmo programa, na sintaxe AT&T.
|
 |
27/03: |
Diferenças entre a esquema de passagem de parâmetros
adotado pela linguagem C e o esquema adotado por outras
linguagens (Pascal, por exemplo). Modularização de programas em
linguagem de montagem (módulos montados separadamente). Notas de
aula.
|
 |
01/04: |
Estrutura de um montador: a tabela de símbolos, montadores de um
passo e montadores de dois passos. Relocação de código: acerto
de endereços em tempo de ligação de módulos (link) e em tempo
de carga do programa. Ligação estática e ligação dinâmica de
bibliotecas. Noções básicas de sistemas operacionais (notas de
aula).
|
 |
03/04: |
Noções básicas de sistemas operacionais (continuação).
Interpretador de comandos (shell). Notas de
aula.
|
 |
08/04: |
Shell (continuação).
|
 |
10/04: |
Mais sobre a shell: metacaracteres, saída de um comando como
argumento para outro comando, redirecionamento de entrada e
saída (referência: Kernighan e Pike).
Linguagem de montagem: revisão e tópicos adicionais (instrução
loop , instruções de manipulação de cadeias, prefixo
rep ).
|
 |
22/04: |
Primeira prova.
|
 |
24/04: |
Visão geral do projeto da disciplina (simulador de canoagem). Manipulação
de arquivos. Notas de
aula.
|
 |
29/04: |
Manipulação de arquivos (continuação). Notas de
aula. Manipulação de arquivos via chamadas ao sistema
operacional versus manipulação de arquivos via chamadas à biblioteca C.
|
 |
06/05: |
Mais sobre filtros e comandos Unix. Notas de
aula. Modularização de programas escritos em C.
|
 |
08/05: |
Analisadores léxicos. Exemplo de programa C modularizado:
calculadora pós-fixa. Notas de
aula.
|
 |
13/05: |
O utilitário make. Notas de
aula.
|
 |
15/05: |
Biblioteca XWC. Fase 2 do projeto. Notas de
aula.
|
 |
20/05: |
Calculadora recursiva com notação infixa. Notas de
aula.
|
 |
22/05: |
Processamento de macros, m4, autoconf. Notas de
aula.
|
 |
27/05: |
Autoconf (continuação). Expressões regulares, awk. Notas de
aula.
|
 |
03/06: |
O utilitário awk (continuação). O utilitário flex. Notas de
aula.
|
 |
10/06: |
Depuração e testes (Prof. Marco D. Gubitoso).
|
 |
12/06: |
LaTex (Prof. Alfredo Goldman). Notas de
aula.
|
 |
17/06: |
Flex (continuação). Gnuplot. Notas de
aula.
|
 |
24/06: |
Segunda prova.
|
 |
01/07: |
Prova substitutiva.
|