🖥️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
- Полная документация 📚
🎯 Цели проекта
- Изучение работы процессора на уровне байтов и битов
- Практика программирования без высокоуровневых абстракций
- Понимание основ компьютерной архитектуры