Синтаксис AT&T або AT&T-синтаксис — один з форматів запису мнемоніки інструкцій процесора.

Особливості Відмінності AT&T-асемблера (gas) від Intel-асемблера (MASM, TASM, FASM, NASM):

Коментар починається зі знака "#", а не ";"; у свою чергу знак ";" відокремлює команди і дозволяє записувати декілька команд в одному рядку. Відсутність префікса операнда вказує на адресу в пам'яті; тому movl foo,%eax поміщає адресу змінної foo в регістр %eax, а movl $foo,%eax поміщає в %eax вміст змінної foo. Назви регістрів починаються зі знака %, тобто %eax, %dl, замість eax, dl тощо. Це дозволяє включати в код зовнішні змінні C, не побоюючись помилок і не використовуючи префіксів з підкресленнями (_). Наприклад:

%eax, %ebx, %ecx, %edx

Розмір операнда визначається суфіксом інструкції. Суфікси: b (від byte) — операнди розміром 1 байт w (від word)— операнди розміром 1 слово (2 байти) l (від long) — операнди розміром 4 байти q (від quad) — операнди розміром 8 байт t (від ten) — операнди розміром 10 байт o (від octo) — операнди розміром 16 байт movb %al,%ah movw %ax,%bx movl %ebx,%eax

Порядок операндів — спочатку джерело, потім приймач, а не навпаки, як в синтаксисі Intel. Наприклад:

mov eax,ebx (Intel) movl %ebx,%eax (AT&T)

числові константи мають таку форму запису

20h (Intel) $0x20 (AT&T, знак "долар" на початку)

mov ebx, 10h (Intel) movl $0x10,%ebx (AT&T)

для запису/зчитування значення з певної адреси в регістр знак долара відсутній

movl 0xffff,%eax

сегмент.зміщення (тільки в реальному режимі) :

00:0FFh (Intel) 00.$0xFF (AT&T)

регістр.зміщення :

es:[bx+0x1a] (Intel) %es.0x1a(%bx) (AT&T) Вказівки на індексні методи адресації відрізняються тим, що використовуються круглі, а не квадратні дужки:

sub eax,[ebx+ecx*4h-20h] (Intel) subl -0x20(%ebx,%ecx,0x4),%eax (AT&T) # відняти від EAX значення (ECX * 4) + EBX - 32

Відрізняються мнемоніки деяких команд (наприклад, cdq називається cltd в AT&T).

Відрізняються команди асемблера (такі, як оголошення констант, резервування місця).

Див. також Синтаксис Intel Мова асемблера AT&T Синтаксис асемблера X86

Посилання Книга з асемблера в Linux у Вікіпідручнику Використання асемблера в Linux