Yasm

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Yasm
Тип

Ассемблер

Разработчик

Peter Johnson, Michael Urman и др.

Операционная система

DOS, Windows, UNIX

Последняя версия

1.2.0 (31 октября 2011)

Лицензия

BSD License

Сайт

yasm.tortall.net

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, ожидаемая документация будет более полной.

Ссылки[править | править исходный текст]