Зачем конвертировать URCL в ASM?
URCL - это универсальный промежуточный язык, намеренно приближенный к RISC-ассемблеру, чтобы его можно было сопоставить практически с любой целью .asm. Разработчики компилируют .urcl в реальный ассемблер, когда хотят запустить код для redstone-компьютеров или самодельных CPU на конкретном наборе инструкций, а не в эмуляторе.
Способы конвертации URCL в ASM
Эталонный компилятор URCL (Haku8866/URCL) OPEN-SOURCE
Запустите py URCL.py <myISA> program.urcl output.txt, где <myISA> - это ваш конфиг ISA на Python (на основе Template.py/ExampleISA.py); переименуйте или сохраните полученный ассемблерный вывод как .asm.
URCL.NET OPEN-SOURCE
Используйте инструментарий URCL.NET для загрузки программы .urcl и генерации целевого ассемблера; он применяет понижение (lowering) основных инструкций перед записью вывода для конкретной ISA.
Об этих форматах
Файл .urcl - это текстовый исходный файл, написанный на URCL (Universal Reduced Computer Language), простом ассемблере в стиле RISC, который в основном используется сообществом создателей…
Открыть детали .URCL →An ASM file is assembly language source code - a plain-text file of low-level CPU instructions. Open it in any text editor to read or edit it. To run the code, assemble it with NASM, MASM,…
Открыть детали .ASM →Качество и на что обратить внимание
- Вы должны предоставить корректный конфиг ISA; без него компилятор не сможет определить, какой целевой ассемблер нужно создать.
- Сложные инструкции URCL преобразуются в базовые, поэтому результирующий
.asmможет быть длиннее и менее оптимальным, чем написанный вручную код. - Не существует единого «правильного» ассемблерного вывода - каждая целевая ISA генерирует свой
.asm, поэтому результаты не взаимозаменяемы.