W instrukcjach dwuargumentowych na procesorze Intel argumenty mogą być
stałymi umieszczonymi w programie (immediate operands), rejestrami
lub miejscami w pamięci. Pamięć może być zaadresowana wprost za pomocą
adresu umieszczonego w rejestrze:
Powyższa instrukcja kopiuje zawartość rejestru %eax do miejsca w pamięci
którego adres jest w rejestrze %ebx. Pamięć można adresować w sposób
nieco bardziej złożony, co ułatwia korzystanie z tablic:
PRZESUNIĘCIE(PODSTAWA, INDEKS, SKALA) |
Gdzie podstawa oraz indeks są rejestrami, skala przyjmuje wartości
1, 2, 4 oraz 8. Przesunięcie i skala nie są poprzedzone znakiem $.
Powyższy zapis oznacza liniowy adres wirtualny:
PODSTAWA + INDEKS*SKALA + PRZESUNIĘCIE |
W składni intela zapisywane to jest jako:
[PODSTAWA + INDEKS*SKALA + PRZESUNIĘCIE] |
Składnia AT&T pozwala adresować zarówno sekcję stosu, danych jak i
kodu. Systemy typu UNIX nie wspierają jednak programów składających się
z wielu sekcji. Gdy odczytujemy pamięć spod jakiegoś adresu, dostajemy
wartość z naszej sekcji danych.