Jump to content

Сетевой ассемблер

НАСМ
Оригинальный автор(ы) Саймон Тэтэм , Джулиан Холл
Разработчик(и) Х. Питер Анвин , Чан Сок Бэ , Джим Кукунас , Фрэнк Б. Котлер , Сирилл Горцунов
Первоначальный выпуск октябрь 1996 г .; 27 лет назад ( 1996-10 )
Стабильная версия
2.16.03 [1]  Отредактируйте это в Викиданных / 17 апреля 2024 г .; 3 месяца назад ( 17 апреля 2024 г. )
Репозиторий
Написано в Сборка , С [2]
Операционная система Unix-подобный , Windows , OS/2 , MS-DOS
Доступно в Английский
Тип x86 сборка
Лицензия 2-пункт BSD
Веб-сайт www .имя .нас

Netwide Assembler ( NASM ) — это ассемблер и дизассемблер для архитектуры Intel x86 . Его можно использовать для написания 16-битных , 32-битных ( IA-32 ) и 64-битных ( x86-64 ) программ. Считается одним из самых популярных ассемблеров для Linux и чипов x86 . [3]

Первоначально он был написан Саймоном Тэтэмом при содействии Джулиана Холла. По состоянию на 2016 год , его поддерживает небольшая команда под руководством Х. Питера Анвина . [4] Это программное обеспечение с открытым исходным кодом , выпускаемое на условиях упрощенной (2-пунктовой) лицензии BSD . [5]

NASM может выводить несколько двоичных форматов, включая COFF , OMF, a.out , исполняемый и связываемый формат (ELF), Mach-O и двоичный файл (.bin, образ двоичного диска, используемый для компиляции операционных систем ), хотя код не зависит от позиции. поддерживается только для объектных файлов ELF . Он также имеет собственный двоичный формат под названием RDOFF. [6]

Разнообразие выходных форматов позволяет переориентировать программы практически на любую операционную систему (ОС) x86. Он также может создавать плоские двоичные файлы , которые можно использовать для записи загрузчиков , образов постоянной памяти (ПЗУ) и в различных аспектах разработки ОС. [6] Он может работать на платформах, отличных от x86, как кросс-ассемблер , таких как PowerPC и SPARC , но не может генерировать программы, используемые на этих машинах.

NASM использует вариант ассемблерного синтаксиса Intel вместо синтаксиса AT&T . [7] Он также позволяет избежать таких функций, как автоматическое создание переопределений сегментов (и связанной с ними директивы ASSUME), используемых MASM и совместимыми ассемблерами. [6]

Примеры программ

[ редактировать ]

Коллекцию примеров программ можно найти в Wikibooks: Примеры программ Netwide Assembler .

Разработка

[ редактировать ]

Версия NASM 0.90 была выпущена в октябре 1996 года. [5]

Версия 2.00 была выпущена 28 ноября 2007 года и в нее добавлена ​​поддержка расширений x86-64 . [4] Версии разработки не загружаются на SourceForge.net , а проверяются на GitHub с помощью двоичных снимков, доступных на веб-странице проекта.

Также доступна поисковая система документации NASM. [8]

В июле 2009 года, начиная с версии 2.07, NASM был выпущен под упрощенной (2 пункта) лицензией BSD. Ранее, поскольку он был лицензирован под лицензией LGPL , это привело к разработке Yasm, полностью переписанного под новой лицензией BSD . Yasm предлагал поддержку x86-64 раньше, чем NASM. Также добавлена ​​поддержка синтаксиса GNU Assembler .

Перемещаемый формат динамических объектных файлов (RDOFF) используется разработчиками для проверки целостности возможностей вывода объектных файлов NASM. Он во многом основан на внутренней структуре NASM. [9] по существу состоящий из заголовка, содержащего сериализацию вызовов функций выходного драйвера, за которым следует массив разделов, содержащих исполняемый код или данные. Инструменты для использования формата, включая компоновщик и загрузчик, включены в дистрибутив NASM.

До выпуска версии 0.90 в октябре 1996 года NASM поддерживал вывод только исполняемых файлов плоского формата (например, DOS COM-файлов ). В версии 0.90 Саймон Тэтэм добавил поддержку интерфейса вывода объектных файлов и файлов DOS .OBJ только для 16-битного кода. [10]

Таким образом, в NASM отсутствовал 32-битный формат объекта. Чтобы устранить этот недостаток и в качестве упражнения для изучения интерфейса объектных файлов, разработчик Джулиан Холл собрал первую версию RDOFF, которая была выпущена в версии NASM 0.91. [10]

Начиная с этой первоначальной версии, в формат RDOFF было внесено одно крупное обновление, в котором к каждой записи заголовка был добавлен индикатор длины записи. [11] разрешение программам пропускать записи, формат которых они не распознают, и поддержка нескольких сегментов; RDOFF1 поддерживал только три сегмента: текст , данные и bss (содержащие неинициализированные данные). [9]

Формат RDOFF категорически устарел и отключен, начиная с NASM 2.15.04. [12]

См. также

[ редактировать ]
  1. ^ «Релиз 2.16.03» . 17 апреля 2024 г. Проверено 23 апреля 2024 г.
  2. ^ «NASM, сетевой ассемблер» . Гитхаб . 25 октября 2021 г.
  3. ^ Рам Нараян. «Ассемблеры Linux: сравнение GAS и NASM» . ИБМ . Архивировано из оригинала 3 октября 2013 года. Два самых популярных ассемблера для Linux: GNU Assembler (GAS) и Netwide Assembler (NASM).
  4. ^ Jump up to: а б «Сетевой ассемблер» . Проверено 27 июня 2008 г.
  5. ^ Jump up to: а б «История версий NASM» . Проверено 3 августа 2019 г.
  6. ^ Jump up to: а б с «Руководство НАСМ» . Архивировано из оригинала 23 февраля 2009 года . Проверено 15 августа 2009 г.
  7. ^ Рэндалл Хайд . «NASM: Сетевой ассемблер» . Архивировано из оригинала 12 сентября 2010 года . Проверено 27 июня 2008 г.
  8. ^ «Поисковая система документов NASM» . Архивировано из оригинала 23 января 2010 года . Проверено 14 сентября 2009 г.
  9. ^ Jump up to: а б «Руководство NASM, глава 6» . Проверено 27 июня 2008 г.
  10. ^ Jump up to: а б «НАСМ ЦВС» . 8 июня 2008 года . Проверено 27 июня 2008 г.
  11. ^ «V1-V2.txt» . 4 декабря 2002 г. Проверено 27 июня 2008 г.
  12. ^ «Формат перемещаемого динамического объектного файла (устаревший)» .

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b6910cfdd6d642efbd5e86bc9a9ed571__1714918080
URL1:https://arc.ask3.ru/arc/aa/b6/71/b6910cfdd6d642efbd5e86bc9a9ed571.html
Заголовок, (Title) документа по адресу, URL1:
Netwide Assembler - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)