Этот проект — небольшой REST-сервер, который принимает ассемблерный код (NASM, x86-64 под Linux, аналогичный тому что исполняется на OneCompiler) и возвращает результат его выполнения.
Идея в том, чтобы можно было запускать и проверять ассемблерный код даже на macOS ARM или других системах, где нативная сборка невозможна.
- POST-эндпоинт
/run_asm
принимает JSON с полемasm
. - Код компилируется через
nasm
, линкуется черезld
и исполняется внутри контейнера. - В ответ возвращаются
stdout
иexitCode
.
Пример запроса:
POST /run_asm
Content-Type: application/json
{
"asm": "section .data\nmsg db 'Hello, world!', 0Ah\n..."
}
Пример ответа:
{
"stdout": "Hello, world!\n",
"exitCode": 0
}
В корне проекта лежат bash-скрипты для билда и запуска проекта через докер на macOS, Apple Silicon
Сначала собрать Docker-образ:
./build.sh
Потом запустить сервер:
./run.sh
Сервер поднимается по умолчанию на порту 8877 (его можно указать в скриптах).
Если у вас macOS на ARM или просто не хочется возиться с локальной настройкой NASM и линковкой под Linux, этот сервер позволяет отдавать код на исполнение через HTTP и получать результат. Удобно для экспериментов и обучения.