логотип нашего сайта о программировании для начинающих

Программирование на ассемблере для начинающих. Ассемблер gas под linux, fasm под windows, tasm под dos, и многое другое.


Сайт для программистов, начинающих кодеров, и людей, желающих заняться программированием.



Меню невыпадающее
Программистам : Другое :

Синтаксис AT&T в сравнении с Intel

    Отличия 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, знак доллар в начале )
movl $0x10,%ebx ( AT&T )

для записи/считывания значения из определённого адреса в регистр знак доллара отсутствует

movl 0xffff,%eax

В синтаксисе AT&T длинные переходы и вызовы записываются как

lcall/ljmp $SECTION, $OFFSET
а в синтаксисе Intel
call/jmp far SECTION:OFFSET

Также, инструкция дальнего возврата в синтаксисе AT&T пишется

lret $STACK-ADJUST
а в синтаксисе Intel
ret far STACK-ADJUST

Здесь со времнем появятся ссылки дружественных и понравившихся сайтов

Информер ТИЦ



Сайт создан Pauk_pv // Pauk@paukpv.pp.ru

Rambler's Top100 Каталог@MAIL.RU - каталог ресурсов интернет

При использовании информации с сайта обязательна ссылка на сайт
Pauk_pv ©