🖥️GMC-16 16-битный виртуальный процессор для программирования на машинном коде

🖥 О проекте

GMC-16 — это 16-битный виртуальный процессор с собственной архитектурой, созданный для изучения низкоуровневого программирования. 📐

Главная особенность: программы пишутся напрямую на машинном коде — числами, без использования ассемблера. 🔢

Проект включает эмулятор на Python, загрузчик, лаунчер и установщик для Windows. ⚙

🧠 Архитектура

  • Разрядность — 16 бит
  • Память — 64 КБ
  • Регистры — 8 штук (R0 – R7)
  • Длина команды — 5 байт
  • Ввод-вывод — через порты 0xFFF0 (вывод) и 0xFFF1 (ввод)

📋 Команды

Процессор поддерживает 13 инструкций:

MOV ADD SUB AND LOAD STORE CMPJMP JEQ JNE JLT JGE HLT

Каждая команда кодируется одним числом — опкодом. 🧩

📦 Формат команды

Одна инструкция — это 5 чисел от 0 до 255:

1 Первое число — что сделать (опкод)

2 Второе число — куда и откуда (регистры)

3 и 4 Третье и четвёртое — число или адрес (сначала младший байт)

5 Пятое число — резерв, всегда 0

🧪 Пример программы

Программа выводит на экран строку «Hello!»:

10 16 240 255 0
10 0 72 0 0
30 0 240 255 0
10 0 101 0 0
30 0 240 255 0
10 0 108 0 0
30 0 240 255 0
10 0 108 0 0
30 0 240 255 0
10 0 111 0 0
30 0 240 255 0
10 0 33 0 0
30 0 240 255 0
31 0 0 0 0

✨ Каждое число — байт машинного кода: опкод, регистр, адрес или константа.

🛠 Состав проекта

  • Эмулятор CPU (cpu.py)
  • Загрузчик программ (run.py)
  • Консольный и графический лаунчер
  • Скрипты для сборки .exe
  • Установщик для Windows
  • Полная документация 📚

🎯 Цели проекта

  • Изучение работы процессора на уровне байтов и битов
  • Практика программирования без высокоуровневых абстракций
  • Понимание основ компьютерной архитектуры

🌐 Ссылка на проект

1
Начать дискуссию