Model pr I(TAK8)

background image

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

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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

background image

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.

background image

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

background image

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).

background image

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

background image

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.

background image

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

background image

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).

background image

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.

background image

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.

background image

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).

background image

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ęć.

background image

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).

background image

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.

background image

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).

background image

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

background image

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).

background image

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

background image

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)

background image

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.

background image

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.

background image

Adresowanie bezpośrednie (bezwzględne)

Kod operacji

Adres

Operand

Pamięć

background image

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.

background image

Adresowanie pośrednie

Kod operacji

Adres pośredni

Adres

Pamięć

Operand

background image

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.

background image

Adresowanie indeksowe

Kod operacji

Adres bazowy

Pamięć

Operand

Przesunięcie

Przesunięcie

Rejestr indeksowy

background image

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.

background image

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.

background image

Adresowanie względne

Licznik rozkazów

Kod operacji

Przesunięcie

Następna instrukcja

Operand

P

rzesuni

ęci

e

background image

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.

background image

Adresowanie pośrednie indeksowe

Kod operacji

Adres pośredni

Adres bazowy

Operand

Pamięć

Rejestr indeksowy

background image

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.

background image

Adresowanie indeksowe pośrednie

Kod operacji

Adres bazowy

Adres

Operand

Pamięć

Przesunięcie

Rejestr indeksowy

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.


Wyszukiwarka

Podobne podstrony:
2 historia sztuki model PR A1 A Nieznany (2)
lacina model PR
Model pr II(TAK9)
biologia model PR A1 A2 A3 A4 A7
2 historia sztuki model PR A1 A Nieznany (2)
historia model PR 2013 odpowiedzi
2009 hs model PR

więcej podobnych podstron