Skip to content

mxtqnt/CPU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simulador de CPU

Este repositório contém a implementação de um simulador de CPU simples desenvolvido em linguagem C. A aplicação simula o ciclo de execução de instruções, desde a leitura de um programa em arquivo até a decodificação e execução das instruções em uma memória simulada.

Objetivo

O projeto tem como objetivo demonstrar o funcionamento básico de uma Unidade Central de Processamento (CPU), incluindo a manipulação de registradores, leitura de memória, execução de instruções aritméticas e lógicas, desvios condicionais e armazenamento em memória.

Principais Funcionalidades

  • Simulação de registradores de propósito geral (R0 a R7).
  • Simulação dos registradores PC (Program Counter), IR (Instruction Register), MBR (Memory Buffer Register), MAR (Memory Address Register) e IMM (Immediate).
  • Leitura de um arquivo de texto contendo instruções (programa.txt).
  • Decodificação e execução de instruções personalizadas, tais como:
    • Aritméticas: add, sub, mul, div, addi, subi, muli, divi
    • Lógicas: and, or, xor, not
    • Comparações: cmp
    • Desvios: je, jne, jl, jle, jg, jge, jmp
    • Transferência de dados: ld, st, movr, movi
    • Deslocamentos: lsh, rsh
    • Controle: nop, hlt

Estrutura do Código

  • Registradores: reg[8], pc, ir, mbr, mar, imm
  • Memória: vetor memoria[154] simula o armazenamento principal
  • Leitura de programa: a função carregartxt() lê o arquivo programa.txt, converte instruções em formato binário e as armazena na memória
  • Execução:
    • busca(): realiza a leitura da próxima instrução
    • opcode(): identifica a operação a ser realizada
    • Outras funções auxiliam na decodificação dos registradores envolvidos

About

Implementar uma CPU em software segundo o ciclo da Máquina de Von Neumann

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages