architektura sk 06

background image

LISTA ROZKAZÓW I

LISTA ROZKAZÓW I

SPOSÓB PREZENTOWANIA

SPOSÓB PREZENTOWANIA

ROZKAZÓW

ROZKAZÓW

Sposób prezentowania rozkazu

Sposób prezentowania rozkazu

Przykładowe rozkazy

Przykładowe rozkazy

background image

Rozkazem

(instrukcją

maszynową)

nazywamy

najprostszą

operację, której wykonania programista może zażądać od
procesora

Rozkazem

(instrukcją

maszynową)

nazywamy

najprostszą

operację, której wykonania programista może zażądać od
procesora

Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych
(rozkazów), jakie potrafi wykonać dany procesor

Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych
(rozkazów), jakie potrafi wykonać dany procesor

rozkazy przesłań

rozkazy przesłań

rozkazy arytmetyczne i logiczne

rozkazy arytmetyczne i logiczne

rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.)

rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.)

inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie

inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie

chronionym)

chronionym)

Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w

Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w

postaci słów binarnych

postaci słów binarnych

LISTA ROZKAZÓW

LISTA ROZKAZÓW

Adres

komórki

Zawartość

komórki

0000

0000

1011

0001

0000

0001

0001

0101

0000

0010

1010

0000

0000

0011

0000

0000

0000

0100

0000

1111

0000

0101

0000

0000

0000

0110

1100

1000

0000

0111

1100

0110

0000

1000

1010

1010

-

-

0000

1111

0000

0010

MOV CL,5

MOV A, [B2,B3]

ADD CL,A

A=A+5

OUT [B2]

PRINT

rozkazy w postaci kodów binarnych

rozkazy w postaci kodów binarnych

instrukcje maszynowe

instrukcje maszynowe

instrukcje w FORTRANie

instrukcje w FORTRANie

background image

Rozkazy przesłań:

Rozkazy przesłań:

MOV -

MOV -

move

move

- przesłanie słowa między dwoma rejestrami

- przesłanie słowa między dwoma rejestrami

STR -

STR -

store

store

- przesłanie słowa ze wskazanego w rozkazie rejestru do

- przesłanie słowa ze wskazanego w rozkazie rejestru do

komórki pamięci

komórki pamięci

LD -

LD -

load

load

- przesłanie słowa z pamięci do wskazanego rejestru

- przesłanie słowa z pamięci do wskazanego rejestru

XCH -

XCH -

exchange

exchange

- wymiana zawartości rejestrów

- wymiana zawartości rejestrów

Rozkazy arytmetyczno-logiczne:

Rozkazy arytmetyczno-logiczne:

ADD -

ADD -

addition

addition

- dodawanie

- dodawanie

SUB -

SUB -

subtraction

subtraction

- odejmowanie

- odejmowanie

MUL -

MUL -

multiplication

multiplication

- mnożenie

- mnożenie

DIV -

DIV -

division

division

- dzielenie

- dzielenie

NEG -

NEG -

negate

negate

- negacja

- negacja

DEC -

DEC -

decrement

decrement

- zmniejszanie wartości o

- zmniejszanie wartości o

jeden

jeden

INC -

INC -

increment

increment

- awiększanie wartości o

- awiększanie wartości o

jeden

jeden

Rozkazy sterujące pracą programu:

Rozkazy sterujące pracą programu:

JMP -

JMP -

jump

jump

- skok bezwarunkowy do wyspecyfikowanego miejsca w

- skok bezwarunkowy do wyspecyfikowanego miejsca w

pamięci

pamięci

CALL -

CALL -

jump to subroutine

jump to subroutine

- wywołanie podprogramu

- wywołanie podprogramu

RET -

RET -

return

return

- skok powrotny z podprogramu

- skok powrotny z podprogramu

SKIP -

SKIP -

skip

skip

- przeskok przez jeden rozkaz

- przeskok przez jeden rozkaz

Rozkazy sterujące pracą procesora :

Rozkazy sterujące pracą procesora :

HALT -

HALT -

stop

stop

- zatrzymanie wykonania programu

- zatrzymanie wykonania programu

NOP -

NOP -

no operation

no operation

- rozkaz pusty

- rozkaz pusty

AND -

AND -

conjuction

conjuction

- iloczyn

- iloczyn

OR -

OR -

disjunction

disjunction

- suma

- suma

EXOR -

EXOR -

exclusive-OR

exclusive-OR

-suma mod 2

-suma mod 2

NOT -

NOT -

complement

complement

- negacja

- negacja

PRZYKŁADOWE ROZKAZY

PRZYKŁADOWE ROZKAZY

background image

JMP SHORT

JMP SHORT

NEXT

NEXT

mnemonik

mnemonik

argument

argument

EB 03h

EB 03h

Kod rozkazu w

Kod rozkazu w

kodzie

kodzie

heksadecymalnym

heksadecymalnym

Kod rozkazu

Kod rozkazu

binarnie (w

binarnie (w

pamięci)

pamięci)

SPOSÓB PREZENTOWANIA

SPOSÓB PREZENTOWANIA

ROZKAZU

ROZKAZU

kod operacji i pola

kod operacji i pola

argumentów

argumentów

1.

1.

Oznaczenie

Oznaczenie

symboliczne rozkazu

symboliczne rozkazu

Jest stosowane dla prezentacji programu człowiekowi lub przy

Jest stosowane dla prezentacji programu człowiekowi lub przy

pisaniu programów w asemblerze

pisaniu programów w asemblerze

Składa się ono z

Składa się ono z

mnemonika

mnemonika

(skrótu, który powinien sugerować

(skrótu, który powinien sugerować

rodzaj operacji) i

rodzaj operacji) i

pola argumentów

pola argumentów

Inne postaci tego

Inne postaci tego

rozkazu:

rozkazu:

Na przykład: ….

Na przykład: ….

background image

2.

2.

Opis działania rozkazu

Opis działania rozkazu

Jest możliwy w formie słownej lub symbolicznej

Jest możliwy w formie słownej lub symbolicznej

Opis słowny

Opis słowny

:

:

Wykonaj skok i pobierz kod rozkazu z

Wykonaj skok i pobierz kod rozkazu z

komórki pamięci o adresie równym

komórki pamięci o adresie równym

etykieta”

etykieta”

(u nas NEXT=100)

Argumentem jest jednak nie adres komórki lecz długość

Argumentem jest jednak nie adres komórki lecz długość

skoku (interpretowana w kodzie U2). SHORT oznacza w tym

skoku (interpretowana w kodzie U2). SHORT oznacza w tym

przypadku skok bliski (w zakresie od 127 bajtów w górę do

przypadku skok bliski (w zakresie od 127 bajtów w górę do

128 bajtów w dół)

128 bajtów w dół)

Opis symboliczny

Opis symboliczny

:

:

(IP)

(IP)

(IP) + przesunięcie

(IP) + przesunięcie

czyli zwiększ licznik rozkazów o przesunięcie (o liczbę

czyli zwiększ licznik rozkazów o przesunięcie (o liczbę

komórek)

komórek)

SPOSÓB PREZENTOWANIA

SPOSÓB PREZENTOWANIA

ROZKAZU

ROZKAZU

background image

3.

3.

Format rozkazu i tryb adresowania

Format rozkazu i tryb adresowania

Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest

Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest

on następujący:

on następujący:

Kod

Kod

rozkazu

rozkazu

111010

111010

11

11

przemieszcze

przemieszcze

nie

nie

kod

kod

operacji

operacji

argument

argument

4.

4.

Ustawienie flagi

Ustawienie flagi

Istotną informacją jest określenie czy są ustawiane flagi (i

Istotną informacją jest określenie czy są ustawiane flagi (i

które) przy wykonaniu rozkazu. W tym przykładzie flagi nie są

które) przy wykonaniu rozkazu. W tym przykładzie flagi nie są

ustawiane.

ustawiane.

5.

5.

Szybkość wykonywania rozkazu

Szybkość wykonywania rozkazu

Szybkość podawana jest jako ilość taktów zegara procesora

Szybkość podawana jest jako ilość taktów zegara procesora

potrzebnych do wykonania rozkazu. W tym przykładzie

potrzebnych do wykonania rozkazu. W tym przykładzie

procesor 80386 wykonuje rozkaz w 7 taktach.

procesor 80386 wykonuje rozkaz w 7 taktach.

SPOSÓB PREZENTOWANIA

SPOSÓB PREZENTOWANIA

ROZKAZU

ROZKAZU

background image

Pole

Pole

kodu operacji

kodu operacji

(1 lub 2 bajty) zawiera kod operacji, a

(1 lub 2 bajty) zawiera kod operacji, a

pole adresu

pole adresu

argumentu lub argumentu

argumentu lub argumentu

określa miejsce tego argumentu.

określa miejsce tego argumentu.

Przykład dla rozkazu dodawania

Przykład dla rozkazu dodawania

:

:

W - określa rodzaj argumentu (0-bajt; 1-słowo)

W - określa rodzaj argumentu (0-bajt; 1-słowo)

D - bit kierunku określa przeznaczenie (0-REG

D - bit kierunku określa przeznaczenie (0-REG

R/M; 1-

R/M; 1-

REG

REG

R/M)

R/M)

MOD - określa rodzaj adresowania

MOD - określa rodzaj adresowania

11-rejestr do rejestru;

11-rejestr do rejestru;

10-adresowanie pamięci; przesunięcie bez znaku o

10-adresowanie pamięci; przesunięcie bez znaku o

długości słowa;

długości słowa;

01- adresowanie pamięci; przesunięcie ze znakiem o

01- adresowanie pamięci; przesunięcie ze znakiem o

długości bajtu;

długości bajtu;

00-adresowanie pamięci; bez przesunięcia

00-adresowanie pamięci; bez przesunięcia

R/M - określa tryb adresowania pamięci w zależności od

R/M - określa tryb adresowania pamięci w zależności od

MOD jeśli MOD=11 to operacje między rejestrami -

MOD jeśli MOD=11 to operacje między rejestrami -

wskazuje rejestr argumentu

wskazuje rejestr argumentu

MOD

MOD

11 wskazuje metodę obliczania adresu efekt.

11 wskazuje metodę obliczania adresu efekt.

argumentu

argumentu

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

Bajt 1

Bajt 1

Bajt 2

Bajt 2

Kod operacji

Kod operacji

D

D

W

W

MOD

MOD

REG

REG

R/M

R/M

REJ - identyfikator rejestru

REJ - identyfikator rejestru

W=1:

W=1:

W=0:

W=0:

000 - AX

000 - AX

000 - AL

000 - AL

001 - CX

001 - CX

001 - CL

001 - CL

010 - DX

010 - DX

010 - DL

010 - DL

011 - BX

011 - BX

011 - BL

011 - BL

100 - SP

100 - SP

100 - AH

100 - AH

101 - BP

101 - BP

101 - CH

101 - CH

110 - SI

110 - SI

110 - DH

110 - DH

111 - DI

111 - DI

111 - BH

111 - BH

ADD CH,DL

ADD CH,DL

00000

00000

0

0

0

0

0

0

01

01

0

0

1

1

1

1

10

10

1

1

Kod rozkazu - 00H D5H

Kod rozkazu - 00H D5H

Zobacz w pamięci kod rozkazu - 00H D5H

Zobacz w pamięci kod rozkazu - 00H D5H

KOD ROZKAZU

KOD ROZKAZU

background image

Kod rozkazu zostanie zapisany w pamięci pod adresem CS:IP

Kod rozkazu zostanie zapisany w pamięci pod adresem CS:IP

Można to zobaczyć

Można to zobaczyć

KOD ROZKAZU

KOD ROZKAZU

background image

Pole kodu operacji

Pole kodu operacji

(1 lub 2 bajty) zawiera kod operacji, a pole adresu

(1 lub 2 bajty) zawiera kod operacji, a pole adresu

argumentu lub argumentu określa miejsce tego argumentu.

argumentu lub argumentu określa miejsce tego argumentu.

Przykład dla rozkazu dodawania

Przykład dla rozkazu dodawania

:

:

W - określa rodzaj argumentu (0-bajt; 1-słowo)

W - określa rodzaj argumentu (0-bajt; 1-słowo)

D - bit kierunku określa przeznaczenie (0-REG

D - bit kierunku określa przeznaczenie (0-REG

R/M; 1-

R/M; 1-

REG

REG

R/M)

R/M)

MOD - określa rodzaj adresowania

MOD - określa rodzaj adresowania

11-rejestr do rejestru;

11-rejestr do rejestru;

10-adresowanie pamięci; przesunięcie bez znaku o

10-adresowanie pamięci; przesunięcie bez znaku o

długości słowa;

długości słowa;

01- adresowanie pamięci; przesunięcie ze znakiem o

01- adresowanie pamięci; przesunięcie ze znakiem o

długości bajtu;

długości bajtu;

00-adresowanie pamięci; bez przesunięcia

00-adresowanie pamięci; bez przesunięcia

R/M - określa tryb adresowania pamięci w zależności od

R/M - określa tryb adresowania pamięci w zależności od

MOD jeśli MOD=11 to operacje między rejestrami -

MOD jeśli MOD=11 to operacje między rejestrami -

wskazuje rejestr argumentu

wskazuje rejestr argumentu

MOD

MOD

11 wskazuje metodę obliczania adresu efekt.

11 wskazuje metodę obliczania adresu efekt.

argumentu

argumentu

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

Bajt 1

Bajt 1

Bajt 2

Bajt 2

Kod operacji

Kod operacji

D

D

W

W

MOD

MOD

REG

REG

R/M

R/M

REJ - identyfikator rejestru

REJ - identyfikator rejestru

W=1:

W=1:

W=0:

W=0:

000 - AX

000 - AX

000 - AL

000 - AL

001 - CX

001 - CX

001 - CL

001 - CL

010 - DX

010 - DX

010 - DL

010 - DL

011 - BX

011 - BX

011 - BL

011 - BL

100 - SP

100 - SP

100 - AH

100 - AH

101 - BP

101 - BP

101 - CH

101 - CH

110 - SI

110 - SI

110 - DH

110 - DH

111 - DI

111 - DI

111 - BH

111 - BH

ADD CX,DX

ADD CX,DX

00000

00000

0

0

1

1

0

0

01

01

0

0

1

1

1

1

00

00

1

1

Kod rozkazu - 01H D1H

Kod rozkazu - 01H D1H

Zobacz w pamięci kod rozkazu - 01H D1H

Zobacz w pamięci kod rozkazu - 01H D1H

KOD ROZKAZU

KOD ROZKAZU

background image

Kod rozkazu zostanie zapisany w pamięci pod adresem CS:IP

Kod rozkazu zostanie zapisany w pamięci pod adresem CS:IP

Można to zobaczyć

Można to zobaczyć

KOD ROZKAZU

KOD ROZKAZU

background image

Przykład dla rozkazu dodawania

Przykład dla rozkazu dodawania

:

:

Bajt 2

Bajt 2

Bajt 1

Bajt 1

Bajt 3

Bajt 3

Bajt 4

Bajt 4

Bajt 5

Bajt 5

Bajt 6

Bajt 6

Kod

Kod

operacji

operacji

ADD CH,20H

ADD CH,20H

dodaj w trybie natychmiastowym bajt do rejestru bajtowego

dodaj w trybie natychmiastowym bajt do rejestru bajtowego

D

D

MOD

MOD

REG

REG

R/M

R/M

Przesunięcie

Przesunięcie

Przesunięcie

Przesunięcie

Dane

Dane

Dane dla DW=01

Dane dla DW=01

użyto bajtów 1,2 i 5 rozkazu

użyto bajtów 1,2 i 5 rozkazu

D=0; W=0, MOD=11; R/M i REG wskazują rejestr przeznaczenia

D=0; W=0, MOD=11; R/M i REG wskazują rejestr przeznaczenia

ADD CX,2A39H

ADD CX,2A39H

dodaj w trybie natychmiastowym słowo do rejestru

dodaj w trybie natychmiastowym słowo do rejestru

użyto bajtów 1,2,5 i 6 rozkazu

użyto bajtów 1,2,5 i 6 rozkazu

D=0; W=1, MOD=11; R/M i REG wskazują rejestr przeznaczenia

D=0; W=1, MOD=11; R/M i REG wskazują rejestr przeznaczenia

ADD CX,20H

ADD CX,20H

dodaj w trybie natychmiastowym bajt do rejestru o długości słowa

dodaj w trybie natychmiastowym bajt do rejestru o długości słowa

użyto bajtów 1,2 i 5 rozkazu

użyto bajtów 1,2 i 5 rozkazu

znak bajtu zostanie rozszerzony w rejestrze CX w lewo o 8 bitów

znak bajtu zostanie rozszerzony w rejestrze CX w lewo o 8 bitów

dla utworzenia słowa; D=1; W=1

dla utworzenia słowa; D=1; W=1

W

W

Kod rozkazu 80H C5H 20H

Kod rozkazu 80H C5H 20H

10000000 11000101 00100000

10000000 11000101 00100000

Kod rozkazu 81H C1H 39H 2AH

Kod rozkazu 81H C1H 39H 2AH

10000001 11000001 00111001 00101010

10000001 11000001 00111001 00101010

Kod rozkazu 83H C1H 20H

Kod rozkazu 83H C1H 20H

10000011 11000001 00100000

10000011 11000001 00100000

»

Określa się 72 odmiany rozkazów ADD dodawania słów i 72 dodawania bajtów typu

Określa się 72 odmiany rozkazów ADD dodawania słów i 72 dodawania bajtów typu

rejestr-rejestr, rejestr-pamięć, pamięć-rejestr (

rejestr-rejestr, rejestr-pamięć, pamięć-rejestr (

pamięć-pamięć niemożliwe

pamięć-pamięć niemożliwe

)

)

»

Określa się 26 odmian rozkazów ADD dodawania z argumentem natychmiastowym

Określa się 26 odmian rozkazów ADD dodawania z argumentem natychmiastowym

(do pamięci lub rejestru) na słowach i 51 odmian operacji na bajtach

(do pamięci lub rejestru) na słowach i 51 odmian operacji na bajtach

»

Łącznie 221 bez

Łącznie 221 bez

bitu przeniesienia

bitu przeniesienia

i tyle samo z

i tyle samo z

bitem przeniesienia

bitem przeniesienia

»

144

144

»

77

77

»

442

442

KOD ROZKAZU

KOD ROZKAZU

background image

Przykład dla rozkazu przesłania

Przykład dla rozkazu przesłania

:

:

MOV CL,AL - skopiuj zawartość dolnej części akumulatora do

MOV CL,AL - skopiuj zawartość dolnej części akumulatora do

dolnej części rejestru licznika

dolnej części rejestru licznika

MOV AL,BL - skopiuj zawartość dolnej części rejestru B do

MOV AL,BL - skopiuj zawartość dolnej części rejestru B do

dolnej części rejestru akumulatora

dolnej części rejestru akumulatora

kod rozkazu: 88C1

kod rozkazu: 88C1

h

h

= 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1

= 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1

(MOV

(MOV

CL,AL)

CL,AL)

kod rozkazu: 88D8

kod rozkazu: 88D8

h

h

= 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0

= 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0

(MOV

(MOV

AL,BL)

AL,BL)

W

W

R/M

R/M

REG

REG

D

D

MO

MO

D

D

KOD

KOD

OPER.

OPER.

KOD ROZKAZU

KOD ROZKAZU

background image

a rodzaj

a rodzaj

adresowania na operacje na rejestrach

adresowania na operacje na rejestrach

a

a

rejestrem

rejestrem

źródłowym rejestr CX

źródłowym rejestr CX

Przykład identyfikacji rozkazu

Przykład identyfikacji rozkazu

: W pamięci rozpoznano kod

: W pamięci rozpoznano kod

rozkazu

rozkazu

1 0 0 0 1 0 0 1

1 0 0 0 1 0 0 1

1 1 0 0 1 0 0 0

1 1 0 0 1 0 0 0

Jest to rozkaz dwubajtowy, który można zapisać dwójkowo

Jest to rozkaz dwubajtowy, który można zapisać dwójkowo

Kod operacji wskazuje na rozkaz przesłania MOV

Kod operacji wskazuje na rozkaz przesłania MOV

W

W

R/M

R/M

REG

REG

D

D

MO

MO

D

D

KOD

KOD

OPER.

OPER.

Możemy w nim

Możemy w nim

zidentyfikowa

zidentyfikowa

ć

ć

Rodzaj argumentu W na operacje na słowach

Rodzaj argumentu W na operacje na słowach

Stąd też rejestrem przeznaczenia jest AX (akumulator)

Stąd też rejestrem przeznaczenia jest AX (akumulator)

REJ - identyfikator rejestru

REJ - identyfikator rejestru

W=1:

W=1:

W=0:

W=0:

000 - AX

000 - AX

000 - AL

000 - AL

001 - CX

001 - CX

001 - CL

001 - CL

010 - DX

010 - DX

010 - DL

010 - DL

011 - BX

011 - BX

011 - BL

011 - BL

100 - SP

100 - SP

100 - AH

100 - AH

101 - BP

101 - BP

101 - CH

101 - CH

110 - SI

110 - SI

110 - DH

110 - DH

111 - DI

111 - DI

111 - BH

111 - BH

Czyli poszukiwany rozkaz to MOV

Czyli poszukiwany rozkaz to MOV

AX,CX

AX,CX

KOD ROZKAZU

KOD ROZKAZU

background image

DZIĘKUJĘ ZA UWAGĘ !

DZIĘKUJĘ ZA UWAGĘ !


Document Outline


Wyszukiwarka

Podobne podstrony:
architektura sk 05
architektura sk 01
architektura sk 04
architektura sk 03
architektura sk 08
architektura sk 09
architektura sk 07
architektura sk 13
architektura sk 11
architektura sk 02
architektura sk 12
Architektura gotycka 1 06
architektura sk 10
architektura sk 05
III SK 6 06 2
architektura sk 01
White James SK 06 Gwiezdny terapeuta (rtf)
05 OZE 2013 12 06 sk

więcej podobnych podstron