yasm

Модульный ассемблер, представляющий собой полную переработку ассемблера NASM. Он спроектирован как переносимый и перенацеливаемый инструмент, поддерживающий несколько синтаксисов, наборов инструкций и форматов выходных файлов. Yasm распространяется под лицензией BSD и является популярным выбором для разработки, где требуется гибкость и поддержка различных платформ.

Особенности

  • модульная архитектура, позволяющая легко добавлять новые синтаксисы, препроцессоры и форматы вывода;
  • поддержка двух основных синтаксисов ассемблера: NASM и AT&T (GAS);
  • генерация объектных файлов в различных форматах: ELF32/ELF64, COFF, Win32/Win64, Mach-O (32/64 бита), RDOFF2 и чистый бинарный формат;
  • поддержка отладочной информации STABS, DWARF 2 и CodeView 8;
  • наличие встроенного оптимизатора.

Основные компоненты

Yasm предоставляет единую команду с набором опций для управления процессом ассемблирования (подробнее с документацией можно ознакомиться здесь).

Управление целевой архитектурой

Позволяет выбрать набор инструкций и разрядность целевой платформы. По умолчанию используется архитектура x86, поддерживающая как 32-битный (IA-32), так и 64-битный (AMD64) код.

Основные опции:

  • -a arch или --arch=arch — выбор целевой архитектуры. Для просмотра доступных архитектур можно использовать help в качестве значения;
  • -m machine или --machine=machine — выбор конкретной модели архитектуры, например, x86 (32-битная) или amd64 (64-битная).

Выбор формата выходного файла

Определяет тип создаваемого объектного файла. Это ключевая опция для интеграции с различными линкерами и операционными системами.

Основные опции:

  • -f format или --oformat=format — выбор формата вывода. По умолчанию используется bin. Поддерживаемые форматы включают elf32, elf64, coff, win32, win64, macho32, macho64 и другие;
  • -o filename или --objfile=filename — указание имени выходного файла. Если не задано, имя формируется автоматически на основе входного файла и выбранного формата.

Выбор синтаксиса

Yasm может принимать код, написанный в различных синтаксисах ассемблера, что облегчает перенос проектов.

Основные опции:

  • -p parser или --parser=parser — выбор парсера. Доступны nasm (по умолчанию) и gas для синтаксиса GNU AS;
  • -r preproc или --preproc=preproc — выбор препроцессора. По умолчанию используется nasm-препроцессор. Опция raw отключает препроцессинг.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "yasm/1.3.0@aurora",
    )    

Процесс локальной сборки описан в документации.

yasm

Yasm is a complete rewrite of the NASM assembler under the 'new' BSD License
Лицензия
BSD-2-Clause
Версия
Домашняя страница
Скачать
x86_64
1.17 Mb
MD5: ddb79046513376e1d6bc66e355fdb277
Updated: 10.09.2025, 13:47:30
armv8
1.15 Mb
MD5: ff6252f1fd2d74c4b4d35c808b5d882e
Updated: 10.09.2025, 13:47:22
armv7
996.07 Kb
MD5: 6b563526ce20047d6108c57de15cb40a
Updated: 10.09.2025, 13:47:28
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.