Wykład
Temat:
Model programowy komputera I:
format rozkazów, lista rozkazów, tryby adresowania.
Zawartość wykładu:
1. Pojęcie modelu programowego komputera
2. Format słowa rozkazu wewnętrznego
3. Lista rozkazów wewnętrznych komputera
4. Tryby adresowania danych i rozkazów
5. Przykład formatu słowa rozkazowego współczesnego procesora
Pojęcie modelu programowego komputera
Model programowy komputera wyjaśnia sposób wykonywania programu w
komputerze.
Jest to zbiór informacji o komputerze, który jest potrzebny do zrozumienia działania
programów użytkowych w języku wewnętrznym komputera ( tym samym napisania
takich programów).
Model programowy komputera, który obejmuje sposób działania wszystkich rozkazów
wewnętrznych komputera (całą listę rozkazów) jest równoważny architekturze
komputera.
Model programowy komputera obejmuje model programowy procesora i model
współpracy z urządzeniami zewnętrznymi.
Model programowy komputera opiera się o znajomość podstawowego schematu
blokowego procesora oraz schematu podłączenia do procesora pamięci operacyjnej i
układów wejścia/wyjścia.
Znajomość podstawowego schematu blokowego procesora i komputera jest niezbędna
dla zrozumienia formatu i listy rozkazów wewnętrznych.
Uproszczony schemat blokowy mikroprocesora 8-bitowego
Rejestr rozkazów
(RR)
Dekoder rozkazów
Generator
sygnałów
sterujących
Selektor rejestru
Rejestr danych (B)
Licznik rozk. (LR)
Układ
nastêpnika
ALU
Akumulator (A)
Rejestr warunków
Wewnętrzna szyna sterowania
Wewnętrzna szyna adresowa
Zespół rejestrów
uniwersalnych
i specjalnych
Układ sterowania
Rej. adresowy
Taktowanie
Przerwania
R
ej
es
tr
b
u
fo
ro
w
y
da
ny
ch
(
R
B
D
)
R
ej
es
tr
b
u
fo
ro
w
y
ad
re
su
(R
B
A
)
Sprzężenie z szynami
zewnętrznymi
Wewnętrzna szyna danych
Zewnętrzna
szyna
sterowania
Zewnętrzna
szyna
adresowa
Zewnętrzna
szyna
danych
Układ arytmetyczno – logiczny (ALU)
Rej. stanu proc.
Rej. wsk. proc.
Na schemacie blokowym procesora (mikroprocesora) wyróżnione są cztery
podstawowe podzespoły:
•
układ sterowania,
•
zespół rejestrów uniwersalnych i specjalizowanych,
•
układ arytmetyczno-logiczny
•
układ sprzężenia z zewnętrzną szyną systemową.
Te podzespoły podłączone są do trzech szyn procesora: wewnętrznej szyny danych,
szyny adresowej i szyny sterującej.
Poprzez rejestr buforowy danych i rejestr buforowy adresów, szyna danych i szyna
adresowa wraz z szyną sterującą wychodzą na zewnątrz procesora by stworzyć tam
zewnętrzne szyny, do których podłącza się bloki pamięci operacyjnej i układy
wejścia/wyjścia.
Na schemacie występuje jeden wykonawczy układ arytmetyczno-logiczny z
rejestrem bitów warunków, wytwarzanych przez testy wyniku operacji arytmetycznej:
wynik zerowy, wynik z nadmiarem, wynik z przeniesieniem, wynik ujemny, wynik w
podwójnej precyzji, itp.
W bardziej rozbudowanych procesorach występuje więcej układów wykonawczych,
identycznych lub wyspecjalizowanych dla określonych operacji np. przesuwanie,
porównywanie, mnożenie, dzielenie, operacje zmienno-przecinkowe, operacje na
adresach itp., które są równolegle podłączone do szyn wewnętrznych.
Zespół rejestrów uniwersalnych zawiera pewną liczbę rejestrów wykorzystywanych
dla przechowywania danych.
Rejestry specjalne zawierają rejestry adresowe, rejestr wskaźnika stosu i rejestr stanu.
Zespół rejestrów adresowych jest wykorzystywany w operacjach modyfikacji adresu
zawartego w rozkazie.
Rejestr rozkazów należący do układu sterowania przechowuje słowo rozkazu
wewnętrznego podczas wykonania.
Słowo rozkazu jest dekodowane przez dekoder rozkazu. W wyniku dekodowania,
kody binarne operacji zawarte w słowie rozkazu zostają zamienione na sygnały
logiczne, które podawane są do generatora sygnałów sterujących.
Generator sygnałów sterujących realizuje kombinacje logiczne tych sygnałów z
innymi sygnałami, takimi jak sygnały taktujące, wartości warunków i stany przerwań.
W wyniku tych kombinacji logicznej powstają sygnały sterujące, które są
rozprowadzane poprzez szynę sterującą do wszystkich elementów wykonawczych
komputera.
Format słowa rozkazu wewnętrznego
Budowę słowa rozkazu wewnętrznego i sposób dekodowania określa tzw . format
rozkazu (ang. instruction format).
Format rozkazu podaje długość słowa rozkazu, podział na pola bitowe oraz sposób
interpretacji (traktowania) poszczególnych pól.
Pola bitowe słowa rozkazowego służą do:
•
zakodowania w nich operacji do wykonania w rozkazie
•
zakodowania sposobu dekodowania rozkazu
•
umieszczenia bitów danych.
Najprostszy format rozkazu składa się z dwu pól:
•
pola części operacyjnej
•
pola części adresowej.
Część
operacyjna
Część
adresowa
Bity określające
adres podzespołów
mikroprocesora
Bity określające
operacje podzespołów
mikroprocesora
Najprostszy format rozkazu
Słowo rozkazowe w komputerze może mieć stałą lub zmienną długość.
Długość słowa rozkazowego zależy od jego części operacyjnej i może być określona
dopiero po jej zdekodowaniu.
Kod operacyjny
Operand
7
0
7
0
Kod operacyjny
Adres operandu
7
0
7
0
Kod operacyjny
Adres operandu
Adres operandu
7 0
7
0
7
0
Stała i zmienna długość słowa rozkazu.
Część operacyjna może składać się z jednego lub wielu pól.
W każdym polu zakodowano binarnie wykluczające się operacje, które mają być
wykonane w ramach danego rozkazu.
W polu części adresowej umieszczone być mogą adresy argumentów operacji z części
operacyjnej ( binarne numery komórek pamięci albo rejestrów) albo też tzw.
argumenty natychmiastowe czyli dane binarne, bezpośrednio użyteczne dla operacji
rozkazu.
Pole A
Pole B
Pole C
Ciąg bitów
Część operacyjna
Część adresowa
Budowa słowa rozkazowego
Format rozkazu może być stały lub zmienny.
Przy stałym formacie, długość i podział na pola jest identyczny dla wszystkich
rozkazów wewnętrznych komputera.
Dekodowanie wszystkich pól słowa rozkazowego może odbywać się jednocześnie, tzn.
wszystkie bity są podane na wejścia wszystkich dekoderów pól.
Strukturę dekodera rozkazu stanowi wiele dekoderów pól pracujących równolegle
(każde wytwarza jeden sygnał aktywujący jakąś operację w komputerze).
Sposób dekodowania rozkazu o stałym formacie
Pole A
Pole B
Pole C
Ciąg bitów
Część operacyjna
Część adresowa
DekA
DekB
DekC
Przy zmiennym formacie rozkazu, zarówno długość słowa rozkazu jak i sposób
podziału na pola są różne dla różnych rozkazów.
Przy zmiennym formacie rozkazu, dekodowanie rozkazu następuje stopniowo, jedna
faza dekodowania po drugiej.
W każdej fazie dekoduje się ustalone pola rozkazu. Wartości kodu w tych polach
decydują o tym jakie pola dekodować w następnej fazie, a więc na wejścia jakich
dekoderów dopuścić bity kolejne dekodowane w następnej fazie.
Przy stwierdzeniu odpowiednich kodów w odpowiednich polach, dekodowanie
bieżącego rozkazu ustaje i pobierany jest nowy rozkaz (poprzez odpowiednie sygnały
z generatora sygnałów sterujących).
Strukturę dekodera stanowi drzewo dekoderów z bramkami dopuszczającymi
odpowiednie bity do odpowiednich dekoderów.
Sposób dekodowania rozkazu o zmiennym formacie
Ciąg bitów
Część operacyjna
Część adresowa
Faza I
Faza II
Faza II
Selektor
Selektor
Faza III
Faza III
Selektor
Selektor
Faza II
Faza III
Faza I
Lista rozkazów komputera
W komputerze o modelu von Neumana, wykonanie wszelkich programów (nawet
napisanych w językach wysokiego poziomu) sprowadza się do wykonania ciągu
rozkazów wewnętrznych składających się na program.
Rozkazy wewnętrzne wyrażają prawie wszystkie operacje, które komputer może
wykonać. Nie dotyczy to operacji, które nie są programowalne przez użytkownika
komputera, tzn. jak to się mówi „są zaszyte lub zrealizowane w sprzęcie (ang.
hardwired)”, np. obsługa przerwań, obsługa pamięci podręcznej.
Zbiór wszystkich rozkazów wewnętrznych, w które wyposażono dany komputer ,
rozumiany jako zbiór operacji tych rozkazów, nazywamy listą rozkazów komputera
(ang. computer instruction list lub computer instruction set).
Typy rozkazów wewnętrznych komputera
Ze względu na rodzaj operacji wykonywanej w rozkazie wyróżniamy następujące typy
rozkazów wewnętrznych komputera:
•
rozkazy arytmetyczno-logiczne
•
rozkazy przesyłania danych
•
rozkazy operacji na bitach
•
rozkazy sterujące programem
•
rozkazy systemowe.
W rozkazie wewnętrznym jest zawsze określona operacja, która ma być wykonana.
W zależności od konkretnego rozkazu mogą tam być też podane:
•
adresy argumentów operacji,
•
tryb adresowania czyli sposób wyliczenia finalnego adresu argumentów operacji na
podstawie adresu zawartego w rozkazie (możliwa jest modyfikacja adresu przy
użyciu informacji zapamiętanych w komputerze danych),
•
dane natychmiastowe.
Rozkazy wewnętrzne mają postać bardzo niewygodną dla człowieka.
Aby ułatwić pisanie programów niskiego poziomu przez programistów wprowadzono
symboliczne języki programowania tzw. języki asemblerowe.
W językach asemblerowych program wyraża się w postaci instrukcji
odpowiadających rozkazom języka wewnętrznego zapisanych symbolicznie.
Rozkaz asemblera zawiera:
•
symbol operacji wykonywanej przez rozkaz (skrót – mnemonik),
•
symbol trybu adresowania, wartości i symboli adresów używanych przez rozkaz
(etykiety)
•
symbole i wartości danych (stałe i zmienne).
Wartości adresów i danych mogą być zapisywane w różnych zapisach: dziesiętnym,
szesnastkowym, ósemkowym lub binarnym. lecz zawsze z określeniem rodzaju
użytego zapisu (identyfikator).
Typy rozkazów wewnętrznych na przykładzie komputerów
personalnych typu IBM PC.
Rozkazy arytmetyczno-logiczne
Rozkazy arytmetyczno logiczne składają się trzech podstawowych grup rozkazów:
•
rozkazy arytmetyczne,
•
logiczne
•
przesunięć.
Rozkazy arytmetyczne
ADD Obliczenie sumy argumentów (od ang. addition).
SUB Obliczenie różnicy argumentów (od ang. subtraction).
MUL Obliczanie iloczynu z podwójną lub pojedynczą dokładnością
(od ang. multiplication).
DIV Obliczenie ilorazu (od ang. division).
ABS Obliczenie wartości bezwzględnej (od ang. absolute value).
NEG Zmiana znaku liczby (od ang. negate sign).
INC Zwiększ o 1 (od ang. increment).
DEC Zmniejsz o 1 (od ang. decrement).
Rozkazy logiczne
AND Wykonanie operacji AND na argumentach.
OR Wykonanie operacji OR na argumentach.
EXOR Wykonanie operacji EXOR na argumentach.
NOT Wykonanie operacji NOT na argumentach.
Rozkazy przesunięć
SHL/SHR Przesunięcie logiczne w lewo / w prawo.
(od ang. shift left / shift right).
SAL/SAR Przesunięcie arytmetyczne w lewo / w prawo.
(od ang. shift arithmetical left / shift arithmetical right).
ROL/ROR Wykonanie rotacji w lewo / w prawo.
(od ang. rotate left / rotate right).
Rozkazy przesyłania danych
MOV Przesłanie danych między rejestrami lub między rejestrem a pamięcią
(od ang. move).
STR Przesłanie danych między pamięcią a rejestrem.
(od ang. store).
MOVSX Przesłanie bajtu, słowa, podwójnego słowa z rozszerzeniem znaku.
(od ang. move single/double).
LEA Ładowanie adresu efektywnego z pamięci do rejestru
(od ang. load efective address).
PUSH Umieszczenie danych z rejestru na stosie. (wepchnij)
PUSHA Umieszczenie zawartości wszystkich rejestrów na stosie
(wepchnij wszystkie).
IN, OUT Wejście, wyjście danych z urządzeń wejścia-wyjścia
Rozkazy operacji na bitach
BTS Testowanie i ustawienie bitu. Kopiowana jest bieżąca wartość bitu do
znacznika CF, a bit jest ustawiany na l. (od ang. bit test).
BSP Sprawdzanie bitów w przód. Sprawdzane jest słowo lub podwójne słowo w
poszukiwaniu bitu l a numer pierwszego bitu l jest zapisywany w rejestrze
(od ang. bit set prime).
CLR Wyzeruj zawartość rejestru. (od ang. clear).
SET Wstaw same jedynki do rejestru (ustaw na 1).
Rozkazy sterujące programem
JMP Skok bezwarunkowy (od ang. jump).
JE/JZ Skok warunkowy, jeśli równy (lub jeśli zero)
(od ang. jump if equal, jump if zero).
CALL Wywołanie podprogramu (wywołaj).
RET Powrót z podprogramu (od ang. return).
LOOPE/ LOOPZ Wykonanie pętli, jeśli równy /jeśli zero,
skok warunkowy z badaniem zawartości w rejestru ECX po
dekrementacji. (od ang. loop if equal, loop if zero).
INT / INTO Przerwanie programowane / przerwanie w razie nadmiaru.
(od ang. interrupt, interrupt if overflow).
SKIP Pominięcie wykonania następnego rozkazu rozkazu (przeskocz).
HALT Zatrzymaj wykonywanie programu
Rozkazy systemowe
LMSW Ładowanie słowa stanu procesora do rejestru stanu z pamięci lub rejestru,
przełącz do trybu syst. operacyjnego
(od ang. load machine status word register).
SGDT Zapisanie wskaźnika globalnej tablicy deskryptorów w pamięci
(od ang. store global descriptor table register).
LGDT Ładowanie wskaźnika globalnej tablicy deskryptorów z pamięci
(od ang. load global descriptor table register).
LSL Ładowanie granicy segmentu do rejestru. (od ang. load segment limit).
LDS Ładowanie z pamięci rejestru wskaźnika segmentu DS (od ang. load DS).
ENTER Utworzenie w stosie ramki dla parametrów procedury z języka wysokiego
poziomu
ESC Skierowanie programu do koprocesora numerycznego (od ang. escape).
WAIT Czekaj na zmianę stanu wejścia BUSY (czekaj)
Tryby adresowania danych i rozkazów
Bardzo często zawartość pola adresowego rozkazu nie jest bezpośrednio użyta jako
adres danej lub rozkazu lecz procesor wykonuje na nim tzw. operacje adresujące
(ang. addressing operations) , które przekształcają zawartość pola adresowego zanim
zostanie wykorzystana jako ostateczny adres argumentu rozkazu.
Rodzaj operacji, którą procesor wykonuje na zawartości pola adresowego rozkazu jest
nazywany trybem adresowania (ang. addressing mode).
Tryb adresowania dla rozkazu jest zwykle określony w jednym lub kilku polach
należących do pola kodu operacji rozkazu.
W niektórych przypadkach rozkazów, tryb adresowania wynika bezpośrednio z kodu
operacji rozkazu.
Podstawowe tryby adresowania
Adresowanie natychmiastowe
Kod operacji
Operand
W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand (ang.
operand) czyli daną dla rozkazu. Długość operandu zależy od kodu operacji lub od
kodu operacji i dodatkowego pola sterującego w rozkazie.
Ten tryb adresowania stosujemy, gdy np. chcemy bezpośrednio z rozkazu ( bez
odwoływania się do pamięci) załadować do rejestru prostą daną – bajt lub parę bajtów.
Adresowanie bezpośrednie (bezwzględne)
Kod operacji
Adres
Operand
Pamięć
Adresowanie bezpośrednie jest najbardziej podstawowym trybem adresowania. W
tym trybie zawartość pola adresowego stanowi już finalny adres argumentu rozkazu w
pamięci operacyjnej i nie podlega przekształceniu.
Ten tryb stosujemy, gdy nie zależy nam na tym, aby nasz program był przesuwalny w
pamięci operacyjnej, lecz jest przeznaczony do wykonania przy zapisie w ściśle
określone miejsce w pamięci.
Adresowanie pośrednie
Kod operacji
Adres pośredni
Adres
Pamięć
Operand
Przy adresowaniu pośrednim rozkaz zawiera adres komórki pamięci operacyjnej, w
której zawarty jest finalny adres operandu rozkazu.
W tym przypadku komórka pamięci wskazana przez adres rozkazu pośredniczy w
określeniu finalnego adresu.
Tryb pośredni stosujemy, gdy chcemy, aby finalny adres operandu rozkazu mógł być
dynamicznie wstawiony do komórki pośredniczącej w adresowaniu w czasie
wykonywania programu.
Może tak być, gdy ten adres zależy od jakichś testów na wyniku operacji
poprzedzającego rozkazu.
Adresowanie indeksowe
Kod operacji
Adres bazowy
Pamięć
Operand
Przesunięcie
Przesunięcie
Rejestr indeksowy
Adresowanie indeksowe jest inaczej nazywane modyfikacją adresu przez
indeksowanie.
W tym trybie wykorzystuje się specjalne rejestry procesora tzw. rejestry indeksowe
(ang. index registers), które zawierają przesunięcie, który trzeba dodać do adresu
istniejącego w rozkazie aby wyliczyć adres finalny operandu.
Ten tryb adresowania pozwala przesunąć adres zawarty w rozkazie o wartość rejestru
indeksowego.
Używając tego trybu we wszystkich rozkazach programu, można osiągnąć możliwość
wykonania programu przy załadowaniu w dowolne miejsce pamięci. W tym celu
należy napisać program wstawiając do rozkazów programu adresy, które odpowiadają
umieszczeniu pierwszej instrukcji programu pod adresem zerowym w pamięci.
Następnie wiedząc, pod jakim finalnym adresem jest umieszczony pierwszy rozkaz
programu, umieszczamy ten adres w rejestrze indeksowym.
Dzięki operacji indeksowania rozkazów programu, wszystkie adresy operandów
zostaną przesunięte o tę sama wartość – stad nazwa zawartości rejestru indeksowego :
przesunięcie.
Taka organizacja przesuwalności programu w pamięci nosi nazwę dynamicznej
relokacji programu w pamięci.
Rejestrów indeksowych w procesorze jest zwykle wiele, gdyż mogą one być
przydzielone różnym programom lub fragmentom programów, które są wykonywane
w tym samym okresie czasu.
Rejestr indeksowy do użycia, może być określony przy pomocy specjalnego pola
wspomagającego kodowanie trybu adresowania w innym polu rozkazu.
Adresowanie względne
Licznik rozkazów
Kod operacji
Przesunięcie
Następna instrukcja
Operand
P
rzesuni
ęci
e
Adresowanie względne polega na modyfikacji adresu zawartego w rozkazie przez
aktualną zawartość licznika rozkazów.
Ten tryb adresowania dostarcza innego sposobu osiągnięcia dynamicznej
przesuwalności adresów dostępu do danych, tj. gdy nie chcemy lub nie możemy znać
przesunięcia całości programu w stosunku do adresu zerowego.
Przy adresowaniu względnym, finalny adres danej jest wyliczany względem bieżącej
zawartości licznika rozkazów, a więc do rozkazu wstawiamy przesunięcie danej w
programie względem adresu następnego rozkazu, np. n komórek w przód lub w tył.
Musimy tylko zapewnić, aby dana została umieszczona w spodziewanym miejscu
pamięci, a ściślej w spodziewanej odległości od rozkazu, który z tej danej korzysta.
Można to osiągnąć przez zaplanowanie w jakiej odległości od danego rozkazu, będzie
umieszczony obszar danych programu.
Adresowanie pośrednie indeksowe
Kod operacji
Adres pośredni
Adres bazowy
Operand
Pamięć
Rejestr indeksowy
Adresowanie pośrednie indeksowe zapewnia jednoczesną możliwość zastosowania w
programie adresowania pośredniego z modyfikacją adresu odczytanego z komórki
pośredniczącej poprzez zawartość rejestru indeksowego.
Umieszczony w rozkazie adres wskazuje na komórkę przechowującą adres danej,
który może być tam wstawiany dynamicznie jako wynik obliczeń programu. Do tego
adresu stosowane jest następnie indeksowanie poprzez zawartość rejestru
indeksowego.
Zawartość rejestru indeksowego może też być wstawiona dynamicznie w wyniku
działania innej części programu. W zależności od zawartości rejestru indeksowego
trafiamy zatem do innej komórki zawierającej operand.
Adresowanie pośrednie indeksowe pozwala na dwupoziomowe dynamiczne określanie
adresu danych w wyniku obliczeń wykonanych w poprzedzających fragmentach
programu, metodą wpisania pewnego adresu bazowego a następnie modyfikacji tego
adresu bazowego przez rejestr indeksowy.
Adresowanie indeksowe pośrednie
Kod operacji
Adres bazowy
Adres
Operand
Pamięć
Przesunięcie
Rejestr indeksowy
Adresowanie indeksowe pośrednie zapewnia najpierw modyfikację adresu zawartego
w rozkazie przez zawartość rejestru indeksowego a następnie tak otrzymany adres jest
stosowany do wskazania komórki pamięci, w której jest przechowywany finalny adres
operandu rozkazu.
Adresowanie indeksowe pośrednie pozwala na dynamiczne określanie adresów
danych w programie w czasie wykonania programu, przy zapewnieniu przesuwalności
w pamięci całego programu.
Dla dynamicznego określanie adresów danych w programie, program piszemy
począwszy od adresu zerowego w pamięci stosując adresowanie indeksowe do
wszystkich rozkazów z wyjątkiem tych, które działają na danych wybieranych
dynamicznie.
Te rozkazy adresujemy poprzez użycie adresowania pośredniego indeksowego,
umieszczając adres komórki pośredniczącej (względem adresu zero) w bieżącym
rozkazie.
Po załadowaniu programu do pamięci, wpisywana jest do rejestru indeksowego
wartość przesunięcia początku programu w stosunku do adresu zerowego ( robi to
program ładujący).
W trakcie wykonywania programu wszystkie adresy programu , łącznie z tymi, gdzie
zastosowano adresowanie pośrednie oraz tymi. które wpisują adres danej do komórki
pośredniczącej, zostaną zmodyfikowane.
Adresowanie rejestrowe
Kod operacji
Numer rejestru
Zespół
rejestrów
Operand
Mikroprocesor
Adresowanie rejestrowe stosuje się, gdy dana dla rozkazu jest przechowywana w
rejestrze. Część adresowa rejestru zawiera wtedy jedno lub więcej pól, w których
znajdują się identyfikatory rejestrów. Adresowanie rejestrowe jest często stosowane w
tym samym rozkazie razem z innymi trybami adresowania dotyczącymi pamięci
operacyjnej. Wówczas rozkaz dotyczy zarówno pamięci operacyjnej jak i rejestrów
procesora.
Adresowanie pośrednie rejestrowe
Kod operacji
Numer rejestru
Zespół
rejestrów
Adres
Mikroprocesor
Operand
Pamięć
Adresowanie pośrednie rejestrowe polega na tym, że jako miejsce pobrania
finalnego adresu operandu rozkazu stosuje się rejestr procesora, którego identyfikator
umieszczony jest w polu adresowym rozkazu.
Przy pomocy trybu adresowania pośredniego rejestrowego można dynamicznie
określić finalny adres operandu poprzez odpowiednie załadowanie zawartości rejestru,
w zależności od przebiegu obliczeń w programie.
Przykład formatu słowa rozkazu wewnętrznego procesora Pentium
Kod operacji
MOD/RM
Sterowanie
modyfikacją
Przesunięcie
Natychmiastowy
Bajty
1 lub 2
0 lub 1
0 lub 1
0, 1, 2 lub 4
0, 1, 2 lub 4
Modyfikacja
Rejestr/Operacja
Rejestr/Operacja
Skala
Rejestr indeksowy
Rejestr bazowy
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
Pole „Kod operacji” o długości 1-2 bajtów określa operację podstawowa wykonywaną
w rozkazie. Pola „MOD/RM” oraz „ Sterowanie modyfikacją” , o długości 0-1 bajt
każde, określają tryb i szczegóły modyfikacji adresu wykonywanej na adresach
argumentu (ów). Pole „Przesunięcie” zawiera przesunięcie adresu, o ile pola związane
z modyfikacją wskazują na użycie przesunięcia dla określenia adresu argumentu (ów).
Pole „Natychmiastowy” zawiera dane o długości 1-4 bajtów, o ile pola związane z
modyfikacją wskazują na użycie argumentu natychmiastowego.