Składa się z trzech części: pole mod (2 bity) – określa czy operacja odwołuje się do pamięci oraz jaką długość ma ewentualne pole przesunięcia; pole reg (3 bity) – kod rejestru lub modyfikacji adresowej pierwszego argumentu, czasem występuje w roli dodatkowych bitów kodu operacji; pole R/M (3 bity) – kod rejestru lub modyfikacji adresowej drugiego argumentu. Bajt SIB (tylko w przypadku operacji o złożonym sposobie odwoływania się do pamięci, np. za pomocą podwójnej modyfikacji adresowej) – służy do określenia dodatkowych parametrów modyfikacji adresowych, m.in. współczynnik skali pozwalający na wygodne operowanie na tablicach. Pole przesunięcia (opcjonalne) – podaje odległość danych w stosunku do początku segmentu, może mieć długość 1, 2 lub 4 bajtów. Dane stałe (immediate, opcjonalne) – podana bezpośrednio wartość liczbowa argumentu o długości 1, 2 lub 4 bajtów.

Kod prostych instrukcji bez argumentów zajmuje z reguły 1 bajt, a np. skomplikowane operacje przesyłania danych do pamięci mogą zajmować 9 bajtów.