GNU Assembler

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

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

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

Содержание
  • 1 История
  • 2 Общий синтаксис
    • 2.1 Директивы
    • 2.2 Комментарии
      • 2.2.1 Многострочные комментарии
      • 2.2.2 Однострочные комментарии
  • 3 Использование
  • 4 Пример программы
  • 5 Синтаксис Intel
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
История

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

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

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

Директивы

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

Комментарии

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

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

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

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

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

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

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

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

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

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

.global _start.text _start: movl $ 4,% eax # 4 (код для "записи" syscall) ->Регистр EAX movl $ 1,% ebx # 1 (дескриптор файла для stdout) ->EBX (1-й аргумент для syscall) movl $ msg,% ecx # адрес строки msg ->ECX (2-й аргумент) movl $ len, % edx # len (32-битный адрес) ->EDX (3-й аргумент) int $ 0x80 # прерывание с местоположением 0x80 (128), которое вызывает процедуру системного вызова ядра movl $ 1,% eax # 1 ("выход") ->EAX movl $ 0,% ebx # 0 (успешно) ->EBX int $ 0x80 # см. предыдущее сообщение.data:.ascii "Hello, world! \ n" # inline ascii string len =. - msg # присвоить значение (текущий адрес - адрес начала сообщения) символу "len"
Синтаксис Intel

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

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
В Wikibook X86 Assembly есть страница по теме: GAS Syntax
Последняя правка сделана 2021-05-21 09:10:39
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте