EN version below • Versão em português acima
- Sobre o Projeto
- Demonstração
- Funcionalidades
- Arquitetura
- Getting Started
- Conjunto de Instruções
- Roadmap
- Contribuindo
- Histórico & Agradecimentos
- Licença
- Contato
- English
O Simulador SIC/XE é uma ferramenta educacional que implementa montador, ligador, carregador e máquina virtual da arquitetura SIC/XE (Simplified Instructional Computer + Extra Equipment). Ele foi concebido inicialmente como trabalho acadêmico colaborativo na Universidade Federal de Pelotas. Desde 2025, o projeto segue mantido e expandido individualmente por Renan Pinho.
Objetivos:
- Fornecer ao estudante um ambiente gráfico para experimentar assembly SIC/XE;
- Servir como base de estudos sobre montadores, ligadores e execução de código de baixo nível;
- Demonstrar boas práticas de engenharia de software em Java 17 & JavaFX 20.
| Edição de código | Execução passo‑a‑passo |
|---|---|
| TODO |
- Processador de Macros com suporte a macros aninhadas
- Montador completo para SIC/XE com diretivas
START/END, registrosH/D/R/T/M/E, geração de.obje.meta - Ligador multi‑módulo (relocável ou absoluto)
- Carregador com relocação final opcional
- Máquina Virtual com execução passo‑a‑passo, breakpoints e inspeção de registradores/memória
- Interface Gráfica em JavaFX incluindo editor de código com destaque de sintaxe
- Logs estruturados (
SLF4J) e testes unitários (JUnit 5)
+---------------------------+
| JavaFX GUI |
+---------------------------+
|
v
+---------------------------+
| Application Core |
| (Assembler/Linker/VM) |
+---------------------------+
|
v
+---------------------------+
| Hardware |
| (CPU, Memory, Devices) |
+---------------------------+
Cada camada expõe APIs bem‑definidas, facilitando testes e extensões. Consulte o diagrama completo em TODO).
- Java 17 ou superior
- Git 2.40+
- Não é necessário ter Gradle instalado – o wrapper (
gradlew) já acompanha o repositório.
git clone https://github.com/pinhorenan/simulador-sic-xe.git
cd simulador-sic-xeLinux / macOS:
./gradlew runWindows PowerShell:
.\gradlew.bat run./gradlew jar
java -jar build/libs/sicxe-simulator.jarImplementadas
Formato 2
ADDR, CLEAR, COMPR, DIVR, MULR, RMO, SHIFTL, SHIFTR, SUBR, TIXR
Formato 3/4
ADD, AND, COMP, DIV, J, JEQ, JGT, JLT, JSUB, LDA, LDB, LDCH, LDL, LDS, LDT, LDX, MUL, OR, RSUB, STA, STB, STCH, STL, STS, STT, STX, SUB, TIX
Pendentes
FIX, FLOAT, NORM, HIO, SIO, TIO, ADDF, COMPF, DIVF, LDF, MULF, STF, SUBF, LPS, RD, SSK, STI, STSW, SVC, TD, WD
Chamadas a instruções não implementadas geram logs para facilitar contribuição.
- Exportar log de execução em JSON
- Suporte completo a formato 1 e I/O
- Internacionalização (i18n) PT‑BR ↔ EN
- Integração contínua no GitHub Actions
- Fork o projeto
- Crie sua feature branch:
git checkout -b feature/minha-feature - Commit suas alterações:
git commit -m 'feat: minha nova feature' - Push para o branch:
git push origin feature/minha-feature - Abra um pull request
Este projeto teve origem em 2024 como trabalho em equipe nas disciplinas de Organização e Arquitetura de Computadores da UFPel.
Contribuíram na versão inicial:
| Nome | GitHub |
|---|---|
| Arthur Alves | @arthursa21 |
| Fabricio Bartz | @FabricioBartz |
| Gabriel Moura | @gbrimoura |
| Leonardo Braga | @braga0425 |
| Luis Eduardo | @LuisEduardoRasch |
| Renan Pinho | @pinhorenan |
Desde 2025‑04‑25 o desenvolvimento e manutenção passaram a ser conduzidos por Renan Pinho.
A todos os co‑autores originais: muito obrigado!
Distribuído sob a licença MIT.
Renan Pinho • LinkedIn • rmdpinho@inf.ufpel.edu.br • pinhorenan@outlook.com