Yasm

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску
Yasm
Тип Ассемблер
Разработчик Peter Johnson, Michael Urman и др.
ОС DOS, Windows, UNIX
Версия 0.8.0 (10 апреля 2009)
Лицензия BSD License
Сайт tortall.net/projects/yasm

Yasm — ассемблер, являющйся попыткой полностью переписать ассемблер NASM. Лицензируется под лицензией BSD и в настоящее время развивается Питером Джонсоном и Майклом Ерманом.

Поддерживаемые архитектуры

Формат выходных файлов

Yasm поддерживает следующие форматы выходных файлов:

  • Binary — бинарные файлы с любой нужной вам структурой.
  • COFF — объектные файлы для использования с DJGPP, MS COFF для Win32, MS64 COFF для Win64 (с поддержкой SEH).
  • RDOFF2
  • ELF32 и ELF64 — объектные файлы UNIX.
  • Mach-O — 32 и 64 битные объектные файлы Mac_OS_X.

Формат отладочной информации

Расшифровка

Название Yasm, особенно в форме акронима, имеет несколько возможных значений, главным образом шуточных:

  • Yes, it’s an ASseMbler — Да, это — АССЕМБЛЕР
  • Your fAvorite aSseMbler — Ваш любимый ассемблер
  • Yet Another aSseMbler — Еще один ассемблер
  • whY An aSseMbler — почему ассемблер?

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

Yasm может использоваться попеременно с NASM с последовательными результатами для многих намерений и целей.

Преимущества Yasm относительно NASM

Yasm предлагает поддержку x86-64, которую NASM, возможно, не поддерживает должным образом или не поддерживает полностью. Например, проект Xvid может создать оптимизированный машинный код для x86-64 архитектуры, используя Yasm, но не может сделать так при использовании NASM.

Будучи более динамическим проектом, Yasm предлагает более прямую поддержку пользователям, которые ищут новые особенности.

Кроме Intel-синтаксиса, применяемого в NASM, Yasm также поддерживает AT&T-синтаксис, распространённый в Unix. Yasm построен «модульно», что позволяет легко добавлять новые формы синтаксиса, препроцессоры и т. п.

Неудобства Yasm относительно NASM

NASM часто использовался и долго избавлялся от ошибок, от версии к версии, в то время как Yasm — активно развивающийся проект и не был отлажен так же, как NASM.

Из-за быстрого развития, связанного с NASM, ожидаемая документация будет более полной.

Ссылки

en:Yasm