Busca
O PC entrega o endereço ao MAR, a memória devolve um byte pelo MDR e o PC avança. A CPU ainda não faz ideia do que aquele byte significa.
MAR ← PC · MDR ← M[MAR] · PC ← PC+1
O InsidePC não anima um diagrama: ele monta e executa programas reais em uma CPU didática de 8 bits. Cada brilho na placa corresponde a um ciclo de barramento que aconteceu de fato — busca, decodificação, operação da ALU, acerto de cache, interrupção.
A CPU está saindo do estado de reset.
—
Esta miniatura roda o mesmo motor da bancada: o traço exibido é produzido pela execução real do programa do LAB 01.
Um conjunto de instruções pequeno o bastante para caber na cabeça e completo o bastante para escrever programas de verdade: laços, sub-rotinas, pilha, entrada e saída e tratamento de interrupção.
Passe o mouse por uma etapa para ver o que acontece nos registradores e nos barramentos. É esse laço, repetido milhões de vezes por segundo, que faz um computador parecer inteligente.
O PC entrega o endereço ao MAR, a memória devolve um byte pelo MDR e o PC avança. A CPU ainda não faz ideia do que aquele byte significa.
MAR ← PC · MDR ← M[MAR] · PC ← PC+1
O byte vai para o IR. A unidade de controle interpreta o opcode, descobre o modo de endereçamento e liga os sinais internos necessários.
IR ← MDR · sinais de controle
Aqui a ALU soma, compara ou desloca; ou a interface de memória faz mais um acesso; ou o PC é alterado por um desvio.
ALU · acesso à memória · desvio
O resultado volta para um registrador ou para a memória, e as flags Z, C, N e V passam a descrever o que acabou de acontecer.
A ← resultado · flags ← ALU
Cada laboratório é um programa real, montado na hora. Você pode editar o código-fonte de qualquer um deles dentro da bancada e ver o efeito imediatamente.
Um caractere atravessa a máquina inteira sem que um único bit mude. Polling, buffer do controlador e latch de saída.
abrir experimento →Os operandos vão para a memória, voltam para o acumulador e a ALU produz o resultado — junto com as flags que ninguém pediu, mas todo desvio usa.
abrir experimento →O firmware da ROM testa a memória, publica códigos POST no display de diagnóstico, lê o setor 0 do NVMe para $7C00 e entrega o controle ao código carregado.
abrir experimento →O primeiro acesso custa 4 ciclos; o segundo custa 1. E o byte vizinho, que ninguém pediu, também fica barato. Localidade explicada por medição.
abrir experimento →Um laço é interrompido por um evento assíncrono. Contexto para a pilha, vetor em $FFFE, ISR executada, IRET — e o programa continua sem perceber nada.
abrir experimento →“Repetir” não existe como instrução. Existe uma flag Z produzida pela ALU e um JNZ que decide, a cada volta, se o PC retrocede.
abrir experimento →Multiplicar sem instrução de multiplicação: somas sucessivas em uma sub-rotina, com o endereço de retorno guardado e recuperado da pilha a cada chamada.
abrir experimento →Editor de assembly com montador de duas passagens, rótulos, diretivas e mensagens de erro por linha. Escreveu, montou, executou nesta mesma placa.
abrir editor →Um montador transforma o texto em bytes; a CPU busca esses bytes da memória e os interpreta. Se você trocar um opcode, o comportamento muda — porque não há animação pré-gravada.
Analisador lógico com CLK, ALE, RD, WR e IRQ; barramentos com os bits individuais; contagem de ciclos, CPI e tempo simulado. A máquina é medida, não descrita.
VRM pulsando por fase, ventoinha acelerando com a temperatura, refresh de DRAM, trilhos de alimentação oscilando e o display de código POST — como em uma placa de verdade.
Avance por microoperação ou por instrução, marque pontos de parada na listagem, inspecione a memória em hexadecimal e acompanhe cada linha da cache.
O modo básico narra em português claro o que acabou de acontecer. O modo engenharia mostra a mesma coisa em notação RTL, com sinais e endereços.
HTML, CSS e JavaScript puro. Sem servidor, sem build, sem biblioteca. Abra o arquivo local em sala de aula, mesmo sem internet.
Não, e essa é uma escolha deliberada. A IPC-8 é uma máquina didática coerente: tudo o que ela faz, faz de verdade e de forma consistente, mas ela omite pipeline, execução fora de ordem, múltiplos núcleos, MMU, memória virtual e interconexões seriais. Esses assuntos estão explicados na documentação, na seção de limitações do modelo.
Não. Os sete primeiros laboratórios já vêm com o programa pronto e uma narração em linguagem simples a cada passo. O editor de assembly do LAB 08 existe para quem quiser ir além.
Porque em 8 bits você consegue ver o byte inteiro na tela e acompanhar cada linha do barramento acender. Os conceitos — ciclo de instrução, hierarquia de memória, interrupções, localidade — são exatamente os mesmos em 64 bits, apenas com mais fios.
Sim. O projeto é feito para isso: roda offline, tem modo básico para turmas iniciantes e modo engenharia para cursos técnicos e superiores, e permite exportar um relatório com todos os passos executados.
Na bancada, aba Código. Ali estão a listagem montada (endereço, bytes gerados e mnemônico) e o código-fonte editável. Clique em uma linha da listagem para marcar um ponto de parada.
Comece pelo LAB 01: uma tecla, quatro componentes e cerca de sessenta microoperações até a letra aparecer no display.