если универсально под обе архитектуры - fasmg (определения структур и констант (общих для вашего проекта) можно будет использовать одни и те же в разных архитектурах). иначе под каждую свой ассемблер.
Масм
не виндовс
llvm ir
Юзай фасм, он простой
фасм (даже имея в виду фасмарм) не имеет нужных выходных форматов для aarch64 (не спорю код можно обернуть в эти форматы - ручками). fasmg имеет (у него просто поддержка ARM 32 дропнута) и форматы PE64 для aarch64 и elf executable для aarch64 (и даже пример есть).
Понял, спасибо за развернутое объяснение!
А можно я задам классический вопрос: зачем нужен ассемблер для десктопного процессора, если его нельзя запустить на этом процессоре? Чтобы потом было веселее на gas переписывать?
чтоб можно было писать на разные архитектуры и операционные системы не располагая ими в наличии. Хорошо же на одном компе написать свое приложение нацеленное на разные окружения. это лучше чем 10 раз писать с нуля одно и то же приложение, но в разных средах. (вы же когда будете распространять свое приложение не будете заводить 10 разных серверов для сборки, на одном собирать будете, а собрать надо под разные окружения, и желательно динамически с учетом всяких ночных сборок).
только идеальный отладчик- эмулятор, а не девственное целевое окружение на котором начинаем запускать непонятно что. так что удобнее когда на 1 машине собраны компиляторы и отладчики для всех целевых окружений. Ну купить все целевые окружения (или в аренду взять) на период разработки - тоже вариант.
Обсуждают сегодня