Simulador versão 1 (original)
Esta é a versão original do simulador, com a qual os exemplos e guiões de laboratório do livro foram desenvolvidas. No entanto, requer uma versão de Java já antiga (versão 8) e possui alguns problemas de estabilidade (às vezes bloqueia). Entretanto, já foi desenvolvida uma versão 2, mais robusta e com mais funcionalidades.
Para usar a versão 1 do simulador precisa de primeiro instalar a máquina virtual do Java. Selecione a versão 8 (LTS) do Java, o seu sistema operativo, a arquitetura do seu computador e o pacote (JRE ou JDK).
Para executar o simulador, faça duplo clique no ficheiro "simulador-j8-v1.jar".
Atenção: se tiver outras versões de Java mais recentes instaladas, duplo clique poderá não funcionar. Terá de escolher a versão 8 do Java ao abrir o simulador (por exemplo, em Windows, use "Abrir com" e selecione o ficheiro "javaw.exe" no diretório "bin" dentro do diretório onde o Java 8 está instalado).
O livro inclui 75 guiões de laboratório (74 na 1ª edição do livro), com base em simulações de circuitos digitais e de arquiteturas de computadores, para que possa praticar as técnicas e conceitos expressos no livro em casa e ao seu próprio ritmo.
Partindo destes guiões, pode experimentar as suas próprias variantes e os seus próprios circuitos e sistemas. Não se sinta limitado pelos guiões em si. Estes não passam de uma ajuda para o guiar na aquisição das competências. A verdadeira aprendizagem faz-se quando se explora por iniciativa própria e se consegue dominar a tecnologia.
Poderá verificar a página em que cada simulação é referida no índice das simulações, no próprio livro ou aqui.
NOTAS:
As simulações seguintes só funcionam com a versão 1 do simulador. Para usar a versão 2, os circuitos terão de ser refeitos usando o editor da nova versão;
Os ficheiros ".asm" são de texto, podendo visualizá-los ou alterá-los com qualquer editor de texto simples (por exemplo, Notepad++, Brackets ou Sublime);
Algumas instruções poderão aparecer não alinhadas, pois nem todos os editores de texto têm iguais definições de tabs.
Capítulo 2
Simulação 2.1 – Portas lógicas
Simulação 2.2 – Circuitos combinatórios
Simulação 2.3 – Multiplexers
Simulação 2.4 – Descodificadores
Simulação 2.5 – PROMs (Programmable Read Only Memories)
Simulação 2.6 – Trinco SR
Simulação 2.7 – Trincos D
Simulação 2.8 – Básculas D
Simulação 2.9 – Registos
Simulação 2.10 – Lógica de três estados
Simulação 2.11 – Contadores
Simulação 2.12 – Registos de deslocamento
Simulação 2.13 – Máquina de estados simples
Simulação 2.14 – Máquinas de estados microprogramadas
Simulação 2.15 – Soma e subtracção
Capítulo 3
Simulação 3.1 – Utilização de RAMs
Simulação 3.2 – Unidade de dados
Simulação 3.3 – Funcionamento do PEPE-8
Simulação 3.4 – PEPE-8: programação em assembly
Simulação 3.5 – PEPE-8: contagem de bits
Simulação 3.6 – Funcionamento dos periféricos
Simulação 3.7 – Semáforo simples
Simulação 3.8 – Semáforo de peões
Capítulo 4
Simulação 4.1 – Bits de estado
Simulação 4.2 – Transferência de dados entre registos
Simulação 4.3 – Inicialização um registo com uma constante
Simulação 4.4 – Acesso à memória em 16 bits com índice variável
Simulação 4.5 – Acesso à memória em 16 bits sem índice
Simulação 4.6 – Acesso à memória em 16 bits com índice constante
Simulação 4.7 – Acesso à memória em 8 bits
Simulação 4.8 – Acesso à memória em 8 e 16 bits
Simulação 4.9 – Soma e excesso: série de Fibonacci
Simulação 4.10 – Multiplicação e excesso: factorial
Simulação 4.11 – Divisão: números primos
Simulação 4.12 – Divisão: factorização de um número
Simulação 4.13 – Expressões booleanas
Simulação 4.14 – Instruções SET, CLR e CPL
Simulação 4.15 – Instrução BIT
Simulação 4.16 – Máscara AND
Simulação 4.17 – Máscara OR
Simulação 4.18 – Máscara XOR
Simulação 4.19 – Deslocamentos lineares lógicos
Simulação 4.20 – Deslocamentos e máscaras
Capítulo 5
Simulação 5.1 – Ordenação por bolha
Simulação 5.2 – Directiva PLACE
Simulação 5.3 – Ordenação por bolha com apontadores
Simulação 5.4 – Chamada de rotinas com RL
Simulação 5.5 – Chamada de rotinas com a pilha
Simulação 5.6 – Guarda de registos nas rotinas
Simulação 5.7 – Ordenação por bolha com guarda de registos
Simulação 5.8 – Contextos de rotinas
Simulação 5.9 – Recursividade
Simulação 5.10 – Tabelas de uma só dimensão
Simulação 5.11 – Tabelas multidimensionais
Simulação 5.12 – Tabela de apontadores para dados
Simulação 5.13 – Tabela de apontadores para rotinas
Simulação 5.14 – Listas ligadas
Capítulo 6
Simulação 6.1 – Descodificação de endereços
Simulação 6.2 – Endereçamento de byte
Simulação 6.3 – Ciclos de acesso à memória e periféricos
Simulação 6.4 – Prolongamento dos acessos
Simulação 6.5 – Funcionamento básico das interrupções
Simulação 6.6 – Espera activa
Simulação 6.7 – Transferência de dados por interrupções
Simulação 6.8 – Transferência de dados por DMA
Capítulo 7
Simulação 7.1 – Circuito simples microprogramado
Simulação 7.2 – Microprogramação
2ª edição
Simulação 7.3 – Processamento em estágios (acrescentada na 2ª edição)
Simulação 7.4 – Caches
Simulação 7.5 – Memória virtual
Simulação 7.6 – Multiprogramação
Simulação 7.7 – Exclusão mútua
Simulação 7.8 – Programação cooperativa
Simulação 7.9 – Protecção
1ª edição
Simulação 7.3 – Caches
Simulação 7.4 – Memória virtual
Simulação 7.5 – Multiprogramação
Simulação 7.6 – Exclusão mútua
Simulação 7.7 – Programação cooperativa
Simulação 7.8 – Protecção
Apêndice B
Simulação B.1 – Programação com um microcontrolador (CREPE)