Ассемблер GNU - GNU Assembler
Разработчики) | Проект GNU |
---|---|
Стабильный выпуск | 2.34 / 1 февраля 2020 г. |
Написано в | C |
Платформа | Кроссплатформенность |
Тип | Ассемблер |
Лицензия | Стандартная общественная лицензия GNU v3 |
Интернет сайт | www |
В Ассемблер GNU, широко известный как газ или просто в качестве, его исполняемое имя - это ассемблер используется Проект GNU. Это по умолчанию бэкэнд из GCC. Он используется для сборки Операционная система GNU и Ядро Linux, и различное другое программное обеспечение. Это часть GNU Binutils упаковка.
Газ исполняемый файл назван в качестве, стандартное имя для Unix ассемблер. ГАЗ кросс-платформенный, и оба работают и собираются для ряда различных компьютерные архитектуры. Выпущено под Стандартная общественная лицензия GNU v3, ГАЗ бесплатно программное обеспечение.
История
Была опубликована первая версия GAS c. 1986–1987 годы.[1] Он был написан Дином Элснером и поддерживал VAX архитектура.[1]
Общий синтаксис
GAS поддерживает общий синтаксис, который работает для всех поддерживаемых архитектур. Общий синтаксис включает директивы ассемблера и метод комментирования.
Директивы
ГАЗ использует ассемблер директивы (также известные как псевдооперации), которые представляют собой ключевые слова, начинающиеся с точки, которые ведут себя аналогично директивам препроцессора в Язык программирования C. Хотя большинство доступных директив ассемблера действительны независимо от целевой архитектуры, некоторые директивы зависят от машины.[2]
Комментарии
GAS поддерживает два стиля комментариев:[3]
Многострочные комментарии
Как и в C, многострочные комментарии начинаются и заканчиваются зеркальными парами косой черты и звездочки:
/* комментарий*/
Однострочные комментарии
Однострочные комментарии имеют несколько разных форматов, в зависимости от архитектуры, для которой создается сборка.
- Хеш-символы (#) используются для платформ: i386, x86-64, i960, 68HC11, 68HC12, VAX, V850, M32R, PowerPC, MIPS, M680x0, и RISC-V.
- Точка с запятой (;) используются на: 29k драм семья, ARC, H8 / 300 семья, HPPA, PDP-11, picoJava, Motorola и M32C.
- В в знак (@) используется на РУКА Платформа.
- Двойной слэш (//) используется на AArch64 Платформа.
- А вертикальная полоса (|) используется для обозначения комментариев при сборке на 680x0.
- An восклицательный знак (!) на Renesas SH Платформа.
использование
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]
Смотрите также
Рекомендации
- ^ а б «Ассемблер GNU». CiteSeerX 10.1.1.32.4503. Цитировать журнал требует
| журнал =
(помощь) - ^ «Ассемблер GNU - Директивы Ассемблера».
- ^ Red Hat Inc. "Использование как". Получено 10 января, 2013.
- ^ "Новости GNU Assembler".
- ^ «Синтаксис AT&T против синтаксиса Intel». Получено 28 июля 2014.
- ^ Рам Нараян (17 октября 2007 г.). «Ассемблеры Linux: сравнение GAS и NASM». IBM DeveloperWorks. Архивировано из оригинал 3 марта 2009 г.. Получено 28 июля 2014.
внешняя ссылка
- Официальный веб-сайт
- Газовое руководство
- Linux Пользовательские команды Руководство : портативный ассемблер GNU -