GNU Assembler или GAS (вызывается командой as) — ассемблер проекта GNU; используется компилятором GCC. Входит в пакет GNU Binutils. Кроссплатформенная программа, запускается и компилирует код для многочисленных процессорных архитектур. Распространяется на условиях свободной лицензии GPL 3.
Синтаксис Синтаксис и директивы GAS на всех платформах в значительной степени схожи. Директивы начинаются с точки. Многострочные комментарии обозначаются как в Си (/* … */). Однострочные комментарии на разных платформах обозначаются по-разному; например, в GAS для x86 и x86-64 они обозначаются как в C++ (// …) или как в sh (# …), в то время как в GAS для ARM они обозначаются символом @.
По умолчанию, GAS использует AT&T-синтаксис для x86 и x86-64, то есть регистры обозначаются префиксом % и регистр-приёмник указывается после источника; например код movl $42, %eax помещает значение 42 в регистр eax.
В версии 2.10 (выпущенной в 2000 году) появилась поддержка варианта более привычного для x86 Intel-синтаксиса, вызываемого директивой .intel_syntax noprefix (директива .intel_syntax используется для варианта Intel-синтаксиса, в котором регистры обозначаются префиксом %). Например, код .intel_syntax noprefix mov eax, 42 равноценен коду с AT&T-синтаксисом, указанному выше.
Примеры Ниже приведены примеры программы Hello, world! для GAS под Linux.
Примечания
Ссылки Сайт GNU Binutils Linux Assembly HOWTO The Art of Assembly Language (Linux Version) Ассемблеры для Linux: Сравнение GAS и NASM
Assembler Категория:Ассемблер Категория:Свободные компиляторы и интерпретаторы