Ассемблер GNU - GNU Assembler

Ассемблер GNU
Heckert GNU white.svg
Разработчики)Проект GNU
Стабильный выпуск
2.34 / 1 февраля 2020 г.; 10 месяцев назад (2020-02-01)
Написано вC
ПлатформаКроссплатформенность
ТипАссемблер
ЛицензияСтандартная общественная лицензия GNU v3
Интернет сайтwww.gnu.org/программного обеспечения/ binutils/

В Ассемблер GNU, широко известный как газ или просто в качестве, его исполняемое имя - это ассемблер используется Проект GNU. Это по умолчанию бэкэнд из GCC. Он используется для сборки Операционная система GNU и Ядро Linux, и различное другое программное обеспечение. Это часть GNU Binutils упаковка.

Газ исполняемый файл назван в качестве, стандартное имя для Unix ассемблер. ГАЗ кросс-платформенный, и оба работают и собираются для ряда различных компьютерные архитектуры. Выпущено под Стандартная общественная лицензия GNU v3, ГАЗ бесплатно программное обеспечение.

История

Была опубликована первая версия GAS c. 1986–1987 годы.[1] Он был написан Дином Элснером и поддерживал VAX архитектура.[1]

Общий синтаксис

GAS поддерживает общий синтаксис, который работает для всех поддерживаемых архитектур. Общий синтаксис включает директивы ассемблера и метод комментирования.

Директивы

ГАЗ использует ассемблер директивы (также известные как псевдооперации), которые представляют собой ключевые слова, начинающиеся с точки, которые ведут себя аналогично директивам препроцессора в Язык программирования C. Хотя большинство доступных директив ассемблера действительны независимо от целевой архитектуры, некоторые директивы зависят от машины.[2]

Комментарии

GAS поддерживает два стиля комментариев:[3]

Многострочные комментарии

Как и в C, многострочные комментарии начинаются и заканчиваются зеркальными парами косой черты и звездочки:

/* комментарий*/

Однострочные комментарии

Однострочные комментарии имеют несколько разных форматов, в зависимости от архитектуры, для которой создается сборка.

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

GNU Assembler, являясь серверной частью популярного пакета компиляторов, а именно GCC, очень широко используется при компиляции современного программного обеспечения с открытым исходным кодом. GAS часто используется в качестве ассемблера в операционных системах GNU / Linux вместе с другим программным обеспечением GNU. Модифицированную версию GAS также можно найти в Macintosh пакет средств разработки операционной системы с OS X.

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

Стандартное «Привет, мир!» программа для Linux на IA-32 используя значение по умолчанию Синтаксис AT&T:

.Глобальный	_Начните.текст_Начните:	движение  $4, % eax   # 4 (код для системного вызова "запись") -> регистр EAX	движение  $1, % ebx   # 1 (дескриптор файла для stdout) -> EBX (1-й аргумент системного вызова)	движение  $ msg, % ecx # адрес строки сообщения -> ECX (2-й аргумент)	движение  $ len, % edx # len (32-битный адрес) -> EDX (3-й аргумент)	int   0x80 $      # прерывание с адресом 0x80 (128), которое вызывает процедуру системного вызова ядра	движение  $1, % eax   # 1 («выход») -> EAX	движение  $0, % ebx   # 0 (успешно) -> EBX	int   0x80 $      # см. предыдущий.данныесообщение:	.ascii  "Привет, мир!  N" # встроенная строка ascii	len =   . - сообщение           # присвоить значение (текущий адрес - адрес начала сообщения) символу "len"

Синтаксис Intel

Начиная с версии 2.10, синтаксис Intel можно использовать с помощью .intel_syntax директива.[4][5][6]

Смотрите также

Рекомендации

  1. ^ а б «Ассемблер GNU». CiteSeerX  10.1.1.32.4503. Цитировать журнал требует | журнал = (помощь)
  2. ^ «Ассемблер GNU - Директивы Ассемблера».
  3. ^ Red Hat Inc. "Использование как". Получено 10 января, 2013.
  4. ^ "Новости GNU Assembler".
  5. ^ «Синтаксис AT&T против синтаксиса Intel». Получено 28 июля 2014.
  6. ^ Рам Нараян (17 октября 2007 г.). «Ассемблеры Linux: сравнение GAS и NASM». IBM DeveloperWorks. Архивировано из оригинал 3 марта 2009 г.. Получено 28 июля 2014.

внешняя ссылка