background image

Architektura komputerów

4. INSTRUKCJE I 

ADRESOWANIE

background image

4 Instrukcje i adresowanie

4.1 Słowo rozkazowe
4.2 Rozkazy 3-, 2-,1- i 0-adresowe
4.3 Adresowanie pamięci
4.4 Lista rozkazów

ArKom 2013 – 4. Instrukcje i 

adresowanie

2 - 2

background image

4.1 Słowo rozkazowe

• Instrukcja - rozkaz   słowo

ArKom 2013 – 4. Instrukcje i 

adresowanie

3

opcod

e

addressis

• rozkaz wskazuje rodzaj operacji + 

lokalizuje argumenty tej operacji. 

• Kod operacji – kilka bitów – od 

kilkudziesięciu do kilkuset operacji 

• Argumenty operacji mogą być zapisane: 

• bezpośrednio w rozkazie – adres 

natychmiastowy

• w pamięci / rejestrach - adresy 

argumentów

• istnieją rozkazy bez argumentowe - 

lokalizacja argumentu wynika 
bezpośrednio z kodu rozkazu

• Adresy – od kilku do 

kilkunastu/kilkudziesieciu bajtów 

background image

• Początkowo listy rozkazów były niewielkie i 

zawierały proste operacje arytmetyczne i 
elementarne struktury programistyczne (pętle, 
skoki, rozgałęzienia, podprogramy)

• ostatnio dodano rozkazy obsługujące 

multimedia

• Istniała luka pomiędzy assemblerem (kod 

maszynowy) a językami algorytmicznymi 
wysokiego poziomu  rozbudowa listy 
rozkazów ≡ nowe kody operacyjne + 
adresowanie + długość słowa   

ArKom 2013 – 4. Instrukcje i 

adresowanie

4

background image

• CISC – Complex Instruction Set Computer – 

bardzo rozbudowana lista rozkazów , np. 
superminikomputer VAX – ok. 300 rozkazów 
+ pojedyncze rozkazy zastępowały 
podprogramy 

„elegancja” pisania programów, długie listy 

rozkazów, wyrafinowane rozkazy i dany, wiele 
systemów adresowania

sterowanie mikroprogramowe
rozkazy długie i o zmiennej długości – 

utrudnienia dla układu sterującego (procesora) 

ArKom 2013 – 4. Instrukcje i 

adresowanie

5

background image

• RISC – Reduced Instruction Set Computer 

– lata osiemdziesiąte + założenie by 
uprościć listę rozkazów (ok. 60 rozkazów) 
i przyspieszyć jej realizację

 dostosowano do pamięci buforowych / cache
 przetwarzania wielopotokowego. 

• Obecne komputery RISC „znowu” 

posiadają obszerne listy rozkazowe + 
operacje zmiennoprzecinkowe + operacje 
na upakowanych danych (multimedia)

ArKom 2013 – 4. Instrukcje i 

adresowanie

6

background image

• Komputer (procesor) - interpretuje kilka typów 

słów rozkazowych, co pośrednio wpływa na 
liczbę sposobów adresowania,

ArKom 2013 – 4. Instrukcje i 

adresowanie

7

Przykłady

Liczba różnych 

długości 

rozkazów

Liczba 

sposobów 

adresowania

Max 

długość 

rozkazu

IBM 370 
(CISC)

3

5

8

VAX (CISC)

56

21

57

SPARC 

(RISC)

1

1

4

RS6000 
(RISC)

1

4

4

background image

• Cykl rozkazowy (Instruction cycle)

ArKom 2013 – 4. Instrukcje i 

adresowanie

8

 

  START

  HALT

Fetch the next 
Instruction

Execute the 

Instruction

Fetch 

Cycle

Execute 

Cycle

background image

• Przetwarzanie potokowe

• Realizacja sekwencyjna trzech rozkazów

ArKom 2013 – 4. Instrukcje i 

adresowanie

9

Rozka

z

 

 

 

 

 

 

n

F

E

 

 

 

 

n+1

 

 

F

E

 

 

n+2

 

 

 

 

F

E

• Realizacja potokowa trzech rozkazów

Rozka

z

 

 

 

 

 

 

n

F

E

 

 

 

 

n+1

 

F

E

 

 

 

n+2

 

 

F

E

 

 

background image

• W trakcie pobierania rozkazu (F) układy 

realizujące wykonanie rozkazu (E) są bezczynne.

• Oczywiście:

– musi być oddzielenie układów pobierania 

rozkazów od układów wykonawczych

– trzeba doliczyć czas na organizację potoków

ArKom 2013 – 4. Instrukcje i 

adresowanie

10

background image

4.2 Rozkazy 3-, 2-,1- i 0-adresowe

• Rozkaz 3-adresowy

– operacja logiczna / arytmetyczna  q = x + y

ArKom 2013 – 4. Instrukcje i 

adresowanie

11

ADD   X,Y,Q

ADD

Adres X

Adres Y

Adres Q

• Długie słowa adresowe

• Poszczególne adresy zależą od przestrzeni 

adresowej, np. 1MB przestrzeni wymaga 
przynajmniej 20 bitów, czyli rozkaz OPCODE 
+ 3 * 20

• Trzy kontakty (2 pobrania + 1 zapis) z 

pamięcią

 

 

Y

X

Q

Q

:

background image

3.12.2013

• Rozkaz 2-adresowy
• q = x + y  - dwa rozkazy dwuadresowe – 

(operacje podobne do użycia akumulatora 
w maszynie von Neumana)  

ArKom 2013 – 4. Instrukcje i 

adresowanie

12

MOV

Adres X

Adres Q

ADD

Adres Y

Adres Q

Y

Q

Q

Q

Y

ADD

X

Q

Q

X

MOV

;

,

;

,

background image

• Rozkaz 1-adresowy

q = x + y 
schemat von Neumana – akumulator – 
przechowuje domyślny argument operacji 
dwuargumentowych

ArKom 2013 – 4. Instrukcje i 

adresowanie

13

LOAD

Adres X

ADD

Adres Y

STORE

Adres Q

ACC

Q

Q

STORE

Y

ACC

ACC

Y

ADD

X

ACC

X

LOAD

;

;

;

background image

Rozkaz 0-adresowy

Jeżeli zdefiniować domyślne miejsca obu 
argumentów operacji, to można wykonywać 
działania nie podając jawnie adresów argumentów

Komputery stosowe (stack computers) ze stosem 
obliczeniowym (evaluation stack)

Stos stanowi zespół rejestrów, z których możliwe 
jest odczytywanie/zapisywanie informacji 
wyłącznie w odwrotnej kolejności do kolejności ich 
zapisu/odczytu

Zapis i pobranie odbywa się tylko z wierzchołka 
stosu

ArKom 2013 – 4. Instrukcje i 

adresowanie

14

background image

ArKom 2013 – 4. Instrukcje i 

adresowanie

15

1

0

1

Stack Pointer 

Wierzchołek 
stosu

 
 
 

 

 

 

 

S[0
]S[1
]

S[2
]S[3
]

S[6
]

S[4
]S[5
]

S[7
]

PUSH

POP

 

background image

• Zapis z pamięci na stos za pomocą rozkazu 

PUSH - „podwyższenie” stosu, czyli zmniejszenie 
wskaźnika S[…], 

Realizacja PUSH X - zapis słowa X na stos
SP  SP – 1; next S[SP]  X

• Pobranie ze stosu za pomocą POP – „obniżenie” 

stosu, czyli zwiększenie wskaźnika S […] 
Zapisanie (pobranie) słowa z wierzchołka – 
POP Q – przesłanie słowa z wierzchołka pod 
adres Q i „podwyższenie” stosu

Q  S [SP]; next SP  SP + 1

ArKom 2013 – 4. Instrukcje i 

adresowanie

16

background image

• Wykonanie obliczenia q = x + y w komputerze 

stosowym wymaga realizacji czterech rozkazów 
= 3 jednoadresowe oraz 1 zeroadresowy

PUSH   X

;Stos  X

PUSH   Y

;Stos  Y

ADD

;Dodanie dwóch słów z wierzchołku 

stosu

POP   Q ;Q  Stos

ArKom 2013 – 4. Instrukcje i 

adresowanie

17

background image

PUSH

Adres X

PUSH

Adres Y

ADD

 

POP

Adres Q

ArKom 2013 – 4. Instrukcje i 

adresowanie

18

• Mechanizm stosu stosuje się również do 

przechowywania adresów powrotnych 
podprogramów oraz do przechowywania 
danych potrzebnych do wznowienia 
programów przerwanych – stosy powrotu 
(return stack)

background image

4.3 Adresowanie pamięci

• Pole adresowe rozkazu powinno, ale nie może, 

zawierać efektywny adres pamięci (EA – Effective 
Address
), gdyż

– pamięć może być duża
– pole adresowe stałe (za mało bitów/bytów)
– lokowanie/przedłużanie adresów w następnych 

słowach rozkazowych zwiększa czas 
pobierania rozkazów i może prowadzić 
marnotrawstwa 

ArKom 2013 – 4. Instrukcje i 

adresowanie

19

background image

• Metody adresowania (addressing modes);

– adresowanie natychmiastowe
– adresowanie bezpośrednie,
– adresowanie pośrednie 
– adresowanie względne,

 rozbudowa pól adresowych – dodaje 
„nowe/specjalne składniki” oraz sposoby i ich 
interpretacji   architektura ortogonalna ≡ 
gdy w słowie wieloadresowym każdy 
argument/operand może być adresowany 
w sposób niezależny od pozostałych

ArKom 2013 – 4. Instrukcje i 

adresowanie

20

background image

4.3.1 Adresowanie natychmiastowe

OPCOD

E

Argument/operand

ArKom 2013 – 4. Instrukcje i 

adresowanie

21

• Zapisuje się argumenty stałe (niezmienne) 

i znane już w trakcie pisania programu 

background image

4.3.2 Adresowanie bezpośrednie

• Naturalny sposób adresowania
• Wymaga dużego pola adresowego
• Czasami adresuje się jedynie początek obszaru pamięci

ArKom 2013 – 4. Instrukcje i 

adresowanie

22

OPCOD
E

Adres

Operand

Adres 

efektywny

PAMIĘĆ

background image

4.3.3 Adresowanie pośrednie

ArKom 2013 – 4. Instrukcje i 

adresowanie

23

OPCOD
E

Adres

Adres 

efektywny

Adres adresu 

efektywnego

PAMIĘĆ

Operand/ar

gument

background image

• Rozwiązanie historyczne, gdyż

– przynajmniej dwukrotny dostęp do pamięci 
1)znaleźć adres efektywny, 
2)pobrać/zapisać operand 
opóźnienia w realizacji cyklu rozkazowego & 

komplikacja wykonania cyklu rozkazowego

– stosowano również wielostopniowe 

adresowanie efektywne

ArKom 2013 – 4. Instrukcje i 

adresowanie

24

background image

4.3.4 Adresowanie pośrednie oparte o 
rejestry

ArKom 2013 – 4. Instrukcje i 

adresowanie

25

OPCOD
E

Nr 

rejestru/rejestrów

 

PAMIĘĆ

Operand/arg

ument

Adres 

Adres 

Adres 

background image

• Adresowanie podobne do adresowania 

pośredniego opartego o pamięć lecz dzięki 
ulokowaniu adresu w specjalnych uniwersalnych 
rejestrach procedura tworzenia efektywnego 
adresu jest prostsza i nie wymaga dwu (wielu) 
odwołań do pamięci.

• W polu adresowym rozkazu umieszcza się 

adresy/numery rejestrów zawierających adresy 
argumentów; 

– w szczególnym przypadku (RISC) mogą to być 

numery 3 rejestrów (dwa dla wyliczenia adresu 
argumentu, trzeci dla wyniku)

ArKom 2013 – 4. Instrukcje i 

adresowanie

26

background image

4.3.5 Adresowanie względne

ArKom 2013 – 4. Instrukcje i 

adresowanie

27

OPCOD
E

Adres

Operand

PAMIĘĆ

Adres 

bazowy

+

background image

• Adresowanie względne (indexed, based) – pole 

adresowe rozkazu zawiera element adresu 
efektywnego, który dodaje do zawartości 
wskazanego rejestru w celu uzyskania pełnego 
adresu efektywnego operandu.

ArKom 2013 – 4. Instrukcje i 

adresowanie

28

background image

Ze względu na zawartość rejestru rozróżnia się 
adresowanie względne;
• adresowanie bazowe – stała (niezmienna w trakcie 

realizacji programu) zawartość rejestru  do 
zmieniającej się wartości pola adresowego rozkazu jest 
dodawana stała zawartość rejestru bazowego 

• adresowanie indeksowe – zmienna zawartość rejestru 

w trakcie realizacji programu  do pola adresowego 
rozkazu dodaje się zawartość rejestru indeksowego; 
w szczególnym przypadku zawartość rejestru 
indeksowego może się zmieniać automatycznie 
(autoindeksacja) w górę (autoinkrementacja) lub w dół 
(autodekrementacja)

ArKom 2013 – 4. Instrukcje i 

adresowanie

29

background image

4.3.6 Adresowanie względne w oparciu 
o licznik rozkazów

ArKom 2013 – 4. Instrukcje i 

adresowanie

30

OPCOD
E

displacement

Operand

PAMIĘĆ

Adres następnego 

rozkazu

+

 

Program Counter, 

Instruction Pointer

Rozkaz

przesunię
cie

background image

• Adresowanie względne oparte o rejestr licznika 

rozkazów i nosi nazwę relative addressing

• W polu adresowym rozkazu przechowuje się tzw. 

przesunięcie (displacement) równe odległości 
mierzonej w bajtach od wykonywanego rozkazu, 
a dokładniej od następnego rozkazu. 

• W asemblerze nie występują jawnie adresy – 

zapisuje się je jako etykiety i przesuniecie jest 
liczone „automatycznie” jako aktualna odległość 
do danej etykiety i odległość ta stanowi 
przesuniecie zapisane w polu adresowym 
rozkazu.   

ArKom 2013 – 4. Instrukcje i 

adresowanie

31

background image

• Znak przesunięcia  wskazuje kierunek odwołania; 

– ujemne przesunięcie wskazuje miejsce 

w pamięci przed rozkazem, czyli jest to  
odwołanie do tyłu

– dodatnie – miejsce za rozkazem – odwołanie do 

przodu.

ArKom 2013 – 4. Instrukcje i 

adresowanie

32

background image

ArKom 2013 – 4. Instrukcje i 

adresowanie

33

background image

4.4 Lista rozkazów

• Typy działań:

– przesłania
– działania arytmetycne
– działania logiczne
– sterowanie przebiegiem program
– przesłania wejścia-wyjścia
– operacje zmiennoprzecinkowe
– opreracje na argumentach 

upakowanych.

ArKom 2013 – 4. Instrukcje i 

adresowanie

34

background image

4.4.1 Przesłania

• Przesłanie – przemieszczenie 

strumieni zero-jedynkowych 
pomiędzy adresowanymi polami 
pamięci lub rejestrami procesora ≡ 
kopiowanie bez zerowania lub innej 
modyfikacji zawartości źródła 

• Zapisy asemblerowe move, MOV – 

mylące, gdyż to jest tylko 
kopiowanie

ArKom 2013 – 4. Instrukcje i 

adresowanie

35

background image

• Przesłanie bajtu 

– przesłanie bezpośrednie (bez znaku - 

unsigned) – pierwsza część słowa Q 
„pusta” wypełniona zerami

ArKom 2013 – 4. Instrukcje i 

adresowanie

36

10100010

00000000 10100010

P

Q

a)

background image

• Przesłanie bajtu 

– przesłanie z zachowaniem znaku (sign-

extended) – pierwsza część słowa 
wypełniona znakiem – powtórzeniem 
najstarczego bitu bytu – kod 
uzupełnieniowy

ArKom 2013 – 4. Instrukcje i 

adresowanie

37

10100010

11111111

10100010

P

Q

 

b)

background image

• Szczególny typ przesłania to operacje na stosie – 

dotyczy domyślnego adresu wierzchołka stosu

– Stos stanowi zespół rejestrów, z których możliwe jest 

odczytywanie informacji wyłącznie w odwrotnej 
kolejności do kolejności ich zapisu 

– Zapis i pobranie odbywa się tylko z wierzchołka stosu 

 

– Zapis z pamięci na stos za pomocą rozkazu PUSH X - 

zapis słowa X na stos - „podwyższenie” stosu, czyli 
zmniejszenie wskaźnika S[…] / SP 

– Pobranie ze stosu za pomocą POP Q – Zapisanie 

(pobranie) słowa z wierzchołka – POP Q – przesłanie 
słowa z wierzchołka i przesłanie go pod adres Q 
i„obniżenie” stosu, czyli zwiększenie wskaźnika SP

ArKom 2013 – 4. Instrukcje i 

adresowanie

38

background image

ArKom 2013 – 4. Instrukcje i 

adresowanie

39

1

0

1

Stack Pointer 

Wierzchołek stosu

 
 

 

 

 

 

 

S[0
]S[1
]

S[2
]S[3
]

S[6
]

S[4
]S[5
]

S[7
]

PUSH

POP

 

 

background image

4.4.2 Rozkazy arytmetyczne

• Dotyczą operacji na liczba całkowitych (kod U2)

– ADD – dodawanie oraz ADC – dodawanie z przeniesieniem 

(add with carry)

– SUB – odejmowanie oraz SBB – odejmowanie z pożyczką 

(subtrack with borrow)

– MUL – mnożenie
– DIV - dzielenie

• Stosuje się wskaźniki wyznaczane dla każdej operacji 

arytmetycznej i wykorzystywane w rozkazach warunkowych 

– C – przeniesienie (Carry)
– V – nadmiar arytmetyczny (overflow)
– Z – zera (zero
– N – znaku (negative),

ArKom 2013 – 4. Instrukcje i 

adresowanie

40

background image

Dodawanie dwóch liczb o zwiększonej 
dokładności  wielostopniowość operacji

ArKom 2013 – 4. Instrukcje i 

adresowanie

41

X; 63-32

X; 31-0

X+Y; 63-32

X+Y; 31-0

Y; 63-32

Y; 31-0

C

background image

4.4.3 Operacje logiczne

• Operacje logiczne (boolowskie) są 

realizowane na odpowiadających 
sobie bitach (pozycjach)

• Są to z reguły podstawowe operacje 

logiczne:

p AND q,  p OR q,  p XOR q,  p NOR q, 
p NAND q, NOT p, 

• Korzysta się w manipulacjach na 

ciągach zerojedynkowych, np. 

ArKom 2013 – 4. Instrukcje i 

adresowanie

42

background image

ArKom 2013 – 4. Instrukcje i 

adresowanie

43

1010110011110101

0000010010010101

0000011110011111

P

P AND Q

maska - Q

background image

4.4.4 Przesunięcia

• Przesunięcie (shift) oznacza zmianę położenia 

ciągu zerojedynkowego w rejestrze;

– w lewo – na pozycje bardziej znaczące, 

prawo na mniej znaczące 

– może być 

• naturalne (shl, shr)– na zwolnione miejsca 

wpisuje się zera , a wysunięty bit 
zapamiętuje się w znaczniku C  odpowiada 
to mnożeniu/dzieleniu, 

ArKom 2013 – 4. Instrukcje i 

adresowanie

44

background image

Naturalne przesuniecie w lewo

ArKom 2013 – 4. Instrukcje i 

adresowanie

45

 

10011001

 1

C

shl

00110010

0

background image

Przesunięcie w prawo

ArKom 2013 – 4. Instrukcje i 

adresowanie

46

 

10011001

 1

C

shr

01001100

0

background image

• cykliczne (ro) – wysunięty bit wprowadzany jest 

na zwolnione miejsce

ArKom 2013 – 4. Instrukcje i 

adresowanie

47

 

10011001

 1

C

rol

00110011

background image

• arytmetyczne – pewne manipulacje na wartości i 

znaku, np. shra – arytmetyczne w prawo zachowuje 
znak (najstarszy bit), a wartość przesuwa się. 

• Natomiast shla ≡ shl (naturalnemu w lewo)

ArKom 2013 – 4. Instrukcje i 

adresowanie

48

 

10011001

 1

C

shra

11001100

0

background image

• zamiana bajtów (swap), np. bez zamiany 

kolejności bitów w bajcie  

ArKom 2013 – 4. Instrukcje i 

adresowanie

49

P

Q

R

S

 

S

R

Q

P

background image

4.4.5 Rozszerzenia multimedialne

• potrzeba uzupełnienia listy rozkazów o operacje 

ułatwiające przetwarzanie grafiki i dźwięku  
rozkazy multimedialne  wykonanie tej samej 
operacji na wielu zmiennych, np. 16. bitowe 
kodowanie koloru

• By nie wykonywać wielokrotnie tych samych 

czynności dla kolejnych danych  dane grupuje się 
(pakuje się) i wykonuje się jeden rozkaz na całej 
paczce  odpowiada to przetwarzaniu SIMD 
(Single Instruction Multliple Data) 

• z reguły proste operacje dodawania,  mnożenia, 

logiczne, przesunięcia i porównania

ArKom 2013 – 4. Instrukcje i 

adresowanie

50

background image

• Przykłady rozszerzeń

– Intel x86 – MMX (Multi Media EXtension) – 

Rys. 4.19 lub (nowsza wersja procesora) SSE 
(Streaming SIMD Extension) – rejestry 64 
bitowe

– SPARC (Scalable Processor ARChitecture) – 

VIS (Visual Instraction Set

ArKom 2013 – 4. Instrukcje i 

adresowanie

51


Document Outline