Interested Article - GNU Assembler

GNU Assembler или GAS (вызывается командой ) — ассемблер проекта 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 .

Примечания

  1. (англ.) . Дата обращения: 18 июля 2010. Архивировано из 22 марта 2012 года.
  2. (англ.) . Дата обращения: 18 июля 2010. Архивировано из 22 марта 2012 года.
  3. (англ.) . Дата обращения: 17 июля 2010. Архивировано из 18 февраля 2012 года.

Ссылки

  • (англ.)
  • (англ.)
  • (англ.)
  • : the portable GNU assembler — страница справки man по пользовательским командам GNU/Linux (англ.)
Источник —

Same as GNU Assembler