Перейти к содержимому

Asm Craft

Этот мод позволяет писать программы на языке ассемблера прямо в Minecraft и запускать их.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
96
Подписчиков на Modrinth
2
версии
2
Обновлён
1 марта 20261 мар.
Опубликован
в 2026

Коротко о моде

Работает на Fabric
Для Minecraft 1.21.4
Нужен и в игре, и на сервере
Последняя версия — 1.0-SNAPSHOT-2 от 1 марта 2026
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

Версии игры1.21.4
Описание переведено автоматическиПоказать оригинал (EN)

Asm Craft

Мод создан sally4953. Этот мод распространяется под открытой лицензией MIT. Исходный код можно посмотреть в репозитории на GitHub: https://github.com/sally4953/asmcraft Этот мод позволяет писать программы на языке ассемблера прямо в Minecraft и запускать их. На данный момент мод поддерживает только Minecraft Assembly Language. Компилятор C++ всё ещё в разработке. Но я постараюсь довести компилятор C++ до конца. Чтобы собранное приложение можно было запустить, я реализовал в Minecraft виртуальную машину (VM). Она использует совершенно другой фреймворк. Итак, позвольте показать вам конкретную информацию:

Информация о виртуальной машине

Регистры

Есть 7 регистров. Первые четыре используются как переменные при вызове функции. Ещё один регистр хранит указатель для выполнения программы (указывает на адрес в памяти, обозначая текущую выполняемую инструкцию), и ещё один — для хранения возвращаемого значения функции. Последний регистр — результат проверки условия, у него всего два состояния.

Память

В VM есть две области памяти. Одна хранит команды приложения. Её размер — 1024 байта. Так что каждое приложение не должно превышать 1024 байта (но, думаю, никто не напишет такое приложение). Другая память хранит данные времени выполнения. Её размер тоже 1024 байта. Думаю, 1024 байт памяти хватит большинству игроков (или программистов).

Команды

На данный момент VM поддерживает только 22 команды. В следующей таблице приведена информация о них.

НазваниеКомментарийДлина (байт)
nopКоманда, которая ничего не делает.1
retКоманда возврата из функции.1
mov A, BПрисвоить B значение A.5
sub A, BВычесть B из A.5
mul A, BУмножить A на B.5
div A, BРазделить A на B.5
jmp AПрямой переход к A.3
cjp AПерейти к A, если последний регистр истинен.3
grt A, BЕсли A больше B, последний регистр истинен (иначе не истинен).5
lst A, BЕсли A меньше B, последний регистр истинен (иначе не истинен).5
equ A, BЕсли A равно B, последний регистр истинен (иначе не истинен).5
cal AВызвать функцию A (A — адрес в памяти или метка).3
ccl AВызвать A, если последний регистр истинен (A — адрес в памяти или метка).3

| and | Установить последний регистр в true тогда и только тогда, когда значения в первом и втором регистрах оба равны true (иначе false). | 1 | | or | Установить последний регистр в true тогда и только тогда, когда одно из значений в первом и втором регистрах равно true (иначе false). | 1 | | xor | Установить последний регистр в true тогда и только тогда, когда значения в первом и втором регистрах не совпадают (true или false). | 1 | | not | Инвертировать значение последнего регистра. | 1 | | inc A | Прибавить единицу к A. | 3 | | dec A | Вычесть единицу из A. | 3 | | neg A | Записать в A противоположное ему число. | 3 | | int A | Прервать выполнение, запросить у виртуальной машины вызов функции с номером A в памяти, дождаться завершения, и виртуальная машина установит значение в регистр 5. Список поддерживаемых прерываний смотрите в следующей таблице. | 2 |

Прерывания

Виртуальная машина поддерживает только 12 команд прерывания. В следующей таблице показаны эти прерывания.

КодКомментарий
0Выход.
1Вывести целое число над хотбаром.
2Вывести символ над хотбаром.
3Установить мировое время в значение регистра 0.
4Установить значение регистра 5 в мировое время.
5Взять регистр 0 в качестве сида и сгенерировать случайное число в регистр 5.
6Установить счёт игрока в значение регистра 0.
7Установить значение регистра 5 в счёт игрока.
8Установить здоровье игрока в значение регистра 0.
9Установить значение регистра 5 в десятикратное здоровье игрока.
10Установить позиции игрока по осям X, Y и Z в 1/10 значений регистра 0, регистра 1 и регистра 2 соответственно.

| 11 | Если значение регистра 0 равно 0, установить регистр 5 в десятикратную позицию игрока по оси X; если 1 — в десятикратную позицию игрока по оси Y; если 2 — в десятикратную позицию игрока по оси Z; иначе R5 остаётся равным 0. | Этот мод лучше поддерживает китайский. Поэтому, если вы не знакомы с китайским, возможно, вам понадобится переводчик. Это всё содержимое данного мода. В любом случае, наслаждайтесь!

Частые вопросы

Как установить Asm Craft?

Установите Fabric под свою версию Minecraft, скачайте Asm Craft под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Asm Craft?

У Asm Craft есть сборки для Minecraft 1.21.4.

Нужен ли Asm Craft на сервере?

Нужен и в игре, и на сервере

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее