Зачем конвертировать URCL в HEX?
URCL - это промежуточный язык, а не фиксированный машинный код, поэтому сырой дамп числовых опкодов в формате .hex имеет смысл только после того, как вы выбрали конкретный набор инструкций. Люди создают .hex, чтобы прошить или загрузить готовую программу в самодельный или redstone-процессор.
Способы конвертации URCL в HEX
Эталонный компилятор URCL (Haku8866/URCL) OPEN-SOURCE
Запустите py URCL.py <myISA> program.urcl output.txt, чтобы преобразовать константы в десятичную систему и упростить сложные инструкции, получив ISA-ассемблер, готовый к сборке в hex.
Ассемблер вашей целевой ISA FREE
Передайте выходной ассемблерный код из компилятора в ассемблер, соответствующий вашей ISA, чтобы создать финальный образ машинного кода .hex для загрузки в процессор.
Об этих форматах
Файл .urcl - это текстовый исходный файл, написанный на URCL (Universal Reduced Computer Language), простом ассемблере в стиле RISC, который в основном используется сообществом создателей…
Открыть детали .URCL →Файл .hex - это файл Intel HEX: скомпилированная прошивка для микроконтроллера, такого как Arduino, AVR или PIC, хранящаяся в виде текстовых записей. Вы не запускаете его на ПК - вы…
Открыть детали .HEX →Качество и на что обратить внимание
- Компилятор URCL выдает текстовый ассемблер, а не hex, поэтому для получения реального файла
.hexтребуется второй шаг ассемблирования. - Точная структура hex (размер слова, порядок байтов) зависит от параметров BITS в вашей конфигурации ISA и целевого ассемблера, а не от самого URCL.
- Упрощение сложных инструкций до базовых происходит до генерации hex, поэтому машинный код может быть больше, чем эквивалент, собранный вручную.