Rozkazy w kodzie maszynowym zajmują jedno lub kilka słów maszynowych. Ich długość może być taka sama dla wszystkich
rozkazów (stała długość rozkazu) lub różna dla różnych rozkazów (zmienna długość rozkazu). Ten ostatni system jest
stosowany w procesorach firmy INTEL. Rozkaz musi zawierać określenie rodzaju operacji i określenie argumentów.
Określenie argumentów polega na zdefiniowaniu ich lokalizacji. Argumenty mogą znajdować się w polu rozkazu,
rejestrze procesora lub pamięci. Zależy to od trybu adresowania. Zawarty w rozkazie opis lokalizacji argumentu nazywamy
adresem efektywnym.
Na przykład format rozkazu procesora PENTIUM składa się z opcjonalnego przedrostka i rozkazu pokazanych na rysunku.
Przedrostek
LOCK
Powtarzanie
Zmiana segmentu
Rozmiar argumentu
Rozmiar adresu
Rozkaz
Kod operacji
Typ adresowania
Skalowanie indeks-podstawa
Przemieszczenie
Argument natychmiastowy
Przedrostek zawiera następujące pola:
LOCK - oznacza użycie w środowisku wieloprocesorowym tylko pamięci wspólnej,
Powtarzanie - wielokrotne użycie rozkazu w celu operacji na łańcuchu danych,
Zmiana segmentu - jawne określenie, którego segmentu dotyczy rozkaz,
Rozmiar argumentu - określa czy argument jest 16 bitowy czy 32 bitowy,
Rozmiar adresu - określa czy przemieszczenie (offset) 16 bitowe czy 32 bitowe.
Rozkaz zawiera następujące pola:
Kod operacji - 1 lub 2 bajty kodu definiującego typ rozkazu,
Tryb adresowania - zawiera kod wskazujący jeden z 8 rejestrów do przechowywania
argumentu lub jeden z 24 trybów adresowania;
Skalowanie indeks-podstawa - określa czynnik skalowania, rejestr indeksowy i
rejestr podstawowy przy adresowaniu trybem indeks-podstawa
Przemieszczenie - określa przemieszczenie (offset) jeśli trybadresowania korzysta
z przemieszczenia, może ono nie występować, być 1, 2 lub 4 bajtowe
Argument natychmiastowy - argument operacji jeśli znajduje się on w kodzie
rozkazu (tzw. argument natychmiastowy), może on nie występować, być 1, 2 lub 4 bajtowy
W procesorach firmy INTEL tryb adresowania jest jeden dla całego rozkazu.
Informacje zawarte w polach rozkazu są dekodowane przez dekoder rozkazu ID, a następnie wykorzystywane
przez jednostkę sterującą CU do programowania trybu pracy procesora.