Доцент
факультета ПИиКТ
Университета ИТМО
Россия
Симулятор процессоров, ассемблер и система автоматической проверки для обучения архитектуре компьютера
GitHub · Попробовать онлайн · Документация · Примеры · Статистика использования
Wrench – рабочая учебная платформа курса Архитектура компьютера в Университете ИТМО. Студенты пишут программы на ассемблере для одной из нескольких намеренно непохожих процессорных архитектур, а веб-сервис запускает и автоматически проверяет их лабораторные работы. С апреля 2025 года сервис выполнил около 67 000 студенческих программ, им пользуются около 90 человек в день (данные на ноябрь 2026 года).
| Архитектура | Парадигма | Прототип |
|---|---|---|
| Acc32 | Аккумуляторная | – |
| F32a | Стековая машина с двумя стеками | GreenArrays F18a |
| RISC-IV | RISC с архитектурой load/store | RISC-V |
| M68k | CISC с операндами в регистрах и памяти | Motorola 68000 |
| VLIW-IV | VLIW со статическим планированием, связки по 4 | RISC-V + классический VLIW |
| Wasm32 | Стековая машина | WebAssembly |
wrench – консольный ассемблер и симулятор.wrench-fmt – консольный форматировщик ассемблерных файлов.wrench-serv – веб-сервис для загрузки и проверки лабораторных работ.Написан на Haskell. Доступен в виде бинарных сборок для Linux, macOS и Windows, а также Docker-образа. Чтобы поучаствовать в разработке, посмотрите issues или напишите мне в Telegram.
Факториал на RISC-IV, основной цикл (полный исходный код):
factorial_begin:
addi t2, zero, 1 ; acc = 1
factorial_while:
beqz t1, factorial_end ; while (n != 0) {
mul t2, t2, t1 ; acc *= n
addi t1, t1, -1 ; n -= 1
j factorial_while ; }
YAML-конфигурация задаёт входные данные, выводимые отчёты и ожидаемый результат, поэтому этот же файл служит тестом:
wrench factorial.s -c factorial-5.yaml
Больше программ для всех архитектур: примеры.
Обновлено 11 ноября 2026