Значения констант
Это может показаться странным, но попытка ассемблирования показанного ранее кода также окажется безуспешной.
Причина в том, что синтаксис AT&T подразумевает, что перед непосредственными статическими константными значениями необходимо помещать символ доллара '$':
mov $4, %eax |
В результате, этот код выполнит загрузку регистра eax значением 4.
Такая же нотация используется когда необходимо загрузить в регистр какое-либо адресное значение.
Например, можно написать следующее:
mov $my_var, %eax |
для загрузки адреса переменной my_var в регистр eax.