Skip to content
Ruslan edited this page Oct 7, 2026 · 2 revisions

Идея

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

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

Цель проекта — добавить поддержку архитектуры CdM-16 в QEMU и расширить инструменты LLVM для запуска и отладки программ CdM-16, включая поддержку LLDB.

В отличие от моделирования схемы процессора в Logisim, QEMU будет воспроизводить поведение инструкций и преобразовывать их через TCG (Tiny Code Generator) в машинный код процессора компьютера. Проект дополнит существующие инструменты CdM-16 и станет практическим примером интеграции новой архитектуры в QEMU.

Инструменты разработки

Основной язык реализации — C. Для моделирования процессора и памяти используется инфраструктура QEMU.

Источниками информации об архитектуре служат спецификация CdM-16, cdm-devkit и документация QEMU. Для контроля версий используется Git.

Задачи

  1. Интегрировать CdM-16 в QEMU как отдельную целевую архитектуру.
  2. Реализовать процессор CdM-16: его регистры, флаги, декодирование и выполнение набора инструкций через TCG.
  3. Обеспечить запуск программ: реализовать модель памяти, загрузку машинного кода и выполнение программ CdM-16.
  4. Исправить генерацию DWARF: добавить корректное описание стековых кадров, необходимое для построения стек-трейсов.
  5. Добавить поддержку CdM-16 в LLDB: зарегистрировать архитектуру и реализовать необходимую логику для работы отладчика с программами CdM-16.
  6. Реализовать дизассемблер CdM-16: обеспечить преобразование машинного кода CdM-16 обратно в ассемблерные инструкции.
  7. Подготовить документацию: описать порядок сборки эмулятора, подготовки и запуска программ.

Clone this wiki locally