Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta

48
Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta • Lähde: Haltsonen, S., Rautanen, E. • Pieka 02.02.2009 • Kuvagalleria 1 5 Operandien osoittaminen ja tietokoneen käskykanta

description

Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta. Lähde: Haltsonen, S., Rautanen, E. Pieka 0 2 .02.2009 Kuvagalleria. 5.1 Käskykanta ja käskyryhmät. Käskyt jaetaan ryhmiin: Tiedonsiirtokäskyt Aritmeettiset käskyt Loogiset käskyt - PowerPoint PPT Presentation

Transcript of Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta

Page 1: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

1

Tietokonetekniikka5 Operandien osoittaminen ja tietokoneen

käskykanta

• Lähde: Haltsonen, S., Rautanen, E.• Pieka 02.02.2009• Kuvagalleria

Page 2: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

2

5.1 Käskykanta ja käskyryhmät

• Käskyt jaetaan ryhmiin:– Tiedonsiirtokäskyt– Aritmeettiset käskyt– Loogiset käskyt– Sivuttaissiirto- ja rotaatiokäskyt (pyörityskäskyt)– Hyppy- ja haarautumiskäskyt– Syöttö- ja tulostuskäskyt– Ohjauskäskyt

Page 3: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

3

5.2 Käskyn rakenne

Page 4: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

4

Käskyn rakenne(instruction format)

Osoitekenttä:Mikäli operandi tai tulos sijaitsee muistissa, sen sijainnin ilmoittavaa käskyn osaa nimitetään osoitekentäksi (address field).Osoitekenttä voi olla useita sanoja ja haku voi viedä useita muistijaksoja.

Page 5: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

5

Kuva 5-4. Laskentakäskyn ja hyppykäskyn rakenne

a)Laskentakäskyb)Hyppykäsky

Page 6: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

6

Operandin sijainti

• Operaatio on käskyosa eli koodiosa

• Operandi on kohdeosa tai lähdeosa

• Kohde tai lähde voi olla muistipaikka tai yleiskäyttöinen rekisteri tai I/O –rekisteri (tai rekisteriryhmän indeksi).

Page 7: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

7

Avainsanoja• Rekisteriin viittaaminen– Rekisteriryhmä, säilytetään välituloksia– Muutaman bitin Indeksikentän käyttö koodissa

• Muistiviittaus– Operandi tai tulos sijaitsevat keskusmuistissa

• Akku, A –rekisteri, laskentarekisteri• Ohjelmalaskuri (EIP)• ALU --- aritmeettislooginen yksikkö• Pino --- pino-osoitin (ESP)

Page 8: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

8

Kuva 5-3. Käsky, jossa on kolme muistiosoitetta

Käskyn haku vaatii neljä muistiviittausta ja suoritus vaatii kolme muistiviittausta Hidas

Page 9: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

9

Kuva 5-4. Käsky, jossa on kaksi muistiosoitetta

Käskyn haku vaatii kolme muistiviittausta ja suoritus vaatii kolme muistiviittausta Hidas

Page 10: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

10

Käsky, jossa on yksi muistiosoite, Akku nopeampi

Page 11: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

11

Käsky, jossa on yksi muistiosoite ja yksi rekisteriosoite: Rekisteriryhmä

Page 12: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

12

Käsky, jossa on kaksi rekisteriosoitettaKäskyn suorituksessa ei ole lainkaan muistiviittauksia. NopeaRISC –koneissa käsky on yhden sanan mittainen.Käskyssä ei ole lainkaan muistiviittausta. Ainoa muistiviittaus on käskyn haku.

Page 13: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

13

Käsky, jossa on kolme rekisteriosoitettaKolmen operandin käskyn periaate

Page 14: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

14

Nollan osoitteen käskyn periaateOperandit haetaan pinosta ja tulos viedään pinoon.

Page 15: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

15

5.4 Osoitusmuodot(Addressing mode)

• 1. Operandi käskyssä -välitön osoitus • 2. Operandi rekisterissä -rekisteriosoitus • 3. Operandi muistissa -absoluuttinen osoitus– epäsuora osoitus – Rekisteri epäsuora osoitus – indeksoitu osoitus – kantaosoitus– indeksoitu kantaosoitus– suhteellinen osoitus

Page 16: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

16

5.4.1 Välitön osoitus(immediate addressing)

• Operandi (kohde- tai lähde) on osa käskyä.• Vakioiden käyttö on helppoa.• Käsky ja operandi voi olla myös kahden sanan

mittainen.

Page 17: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

17

5.4.2 Rekisteriosoitus(register addressing)

• Operandi (kohde tai lähde) on rekisterissä.• Etua, jos operaation tulosta käytetään hyväksi

seuraavassa käskyssä.

Page 18: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

18

5.4.3 Absoluuttinen osoitus eli suora muistiosoitus

• Operandi on muistissa ja muistipaikan osoite sisältyy käskyyn. Muistiosoite vie sanan verran tilaa.

• Yksinkertainen tapa viitata muistissa oleviin muuttujiin.• Ei rekisteriosoitus ??? Virhe !!!!

Page 19: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

19

Kuva 5-13. Muistiosoitteen täydentäminen ohjelmalaskurin avulla

Page 20: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

20

5.4.4 Rekisteriepäsuora osoitus

Page 21: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

21

5.4.5 Indeksoitu osoitus ja kantaosoitus

• Indeksoitu osoitus (indexed addressing, Index register addressing)

• Kantaosoitus (based addressing, base register addressing)

• Rekisteriepäsuoran osoituksen ylestyksiä• Muistiosoite saadaan lisäämällä indeksi- tai

kantarekisterin sisältöön käskyssä oleva vakio tai siirros (displament, offset).

Page 22: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

22

Indeksoitu osoitus ja kantaosoitus

• Jos indeksi- tai kantarekistereitä on useita, käytetty rekisteri on ilmoitettava käskyssä.

• Skaalattu käyttö:– Indeksirekisterin sisältö kerrotaan vakiolla 1, 2, 4 tai 8 ennen

käskyssä olevan siirroksen lisäystä.– Yhdessä muistipaikassa talletettuna on yksi tavu.– Operandi voi olla joka yhden, kahden, neljän tai kahdeksan

tavun mittainen.– Muistissa taulukko laskentakaava n=k*ri+d– k on vakio, ri on indeksirekisterin sisältö ja d on käskyssä

oleva siirros.

Page 23: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

23

Indeksoitu osoitus ja kantaosoitus

Page 24: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

24

Taulukon käsittely indeksoitua osoitusta käyttäen

Page 25: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

25

Tietorakenteen käsittely

• Kuva 5-17 !

Page 26: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

26

Tietorakenteen käsittely

Page 27: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

27

5.4.6 Indeksoitu kantaosoitus

Page 28: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

28

5.4.7 Suhteellinen osoitus

Page 29: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

29

Mikro-ohjaimen osoitusmuodot

• Katso toinen PPT !

Page 30: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

30

5.5 Käskykanta

• Katso esim. atMega128:n käskykanta *.pdf !

• Tietokoneen kaikki käskyt

• Jaettu ryhmiin toimintojen mukaan

Page 31: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

31

5.5.1 Siirtokäskyt(data transfer instruction)

• Esimerkiksi assembler –käskyinä– Move, load , store jne. omina lyhenteinä– Siirtävät tietoa joko muistipaikan ja rekisterin tai

kahden rekisterin välillä

• Pinonkäsittelykäskyt ovat siirtokäskyjä– push Rekisteristä pinon päälle– pop Pinon päältä rekisteriin

Page 32: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

32

5.5.2 Aritmeettiset käskyt(arithmetic instruction)

• Yhteen-, vähennys-, kerto-, ja jakolaskut• Inkrementointi (incrementing)• Dekrementointi (decrementing)• Vertailu (comparison)• Laskutoimitukset kahdelle luvulle kerrallaan• C-lippu• Liukulukukäskyjä

Page 33: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

33

5.5.3 Loogiset käskyt(Logical instruction)

• Maskauksen merkitys ja käyttö: AND-, OR- ja XOR –maskaus, ”Bittikuviomuokkaus”

• AND – maskaus: Maskin 1 siirtää (säilyttää) ja 0 nollaa kyseisen bitin

• OR – maskaus: Maskin 1 pakottaa 1:ksi ja 0 siirtää (säilyttää) kyseisen bitin

• XOR – maskaus: Maskin 1 invertoi (kääntää) ja 0 siirtää (säilyttää) kyseisen bitin

Page 34: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

34

Bittioperaatiot ja Loogiset lausekkeet

• Bittioperaatiot (&, |, ^, ~, <<, >> , Boolen kytkentä algebra bittitasolla)

• Maskina bittikuvio esim. muuttuja = muuttuja & 0x0F;

• • Looginen lauseke (Boolen kytkentä algebra

lauseketasolla)• !, &&, ||, ==, =>, =<...• if ( tosijuttu1 && tosijuttu2 ) teejuttu;

Page 35: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

35

AND (JA) -operaatioSana 1100 1010Maski 1111 1001Tulos 1100 1000• AND – maskaus: Maskin 1 siirtää (säilyttää) ja 0 nollaa

kyseisen bitinA B F0 0 00 1 01 0 01 1 1

Page 36: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

36

OR (TAI) -operaatio

Sana 1100 1010Maski 1111 1001Tulos 1111 1011• OR – maskaus: Maskin 1 pakottaa 1:ksi ja 0 siirtää

(säilyttää) kyseisen bitinA B F0 0 00 1 11 0 11 1 1

Page 37: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

37

NOT (EI) -operaatio

Sana 1100 1010~ 0011 0101• Kääntää eli invertoi bitin arvon ulostuloonTotuustauluA F0 11 0

Page 38: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

38

XOR (ehdon tai) -operaatio

Sana 1100 1010Maski 1111 1001Tulos 0011 0011• XOR – maskaus: Maskin 1 invertoi (kääntää) ja 0 siirtää

(säilyttää) kyseisen bitinA B F0 0 00 1 11 0 11 1 0

Page 39: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

39

5.5.4 Sivuttaissiirto- ja rotaatiokäskyt

Page 40: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

40

Aritmeettinen sivuttaissiirto

Kahdenkomplementtilukujen käsittely

Page 41: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

41

Looginen sivuttaissiirto

Kahdella kertominen ja jakaminen

Page 42: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

42

5.5.5 Hyppy- ja haarautumiskäskyt

• Hyppykäskyt (jump instruction)– Ehdottomia tai ehdollisia

• Haarautumiskäskyt (branch instruction)– Suoritetaan vain jos ehto on voimassa.– Taulukossa on annettu ehto ja lippujen avulla

muodostettu looginen lauseke, jonka arvo on yksi, jos ehto on voimassa. Katso taulukot 5-1 ja 5-2 !

Page 43: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

43

Hyppy- ja haarautumiskäskyt

Page 44: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

44

Hyppy- ja haarautumiskäskyt

Page 45: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

45

5.5.6 Aliohjelmakäskyt

• call• return• Ohjelmalaskurin arvo (EIP)

Page 46: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

46

Aliohjelman periaate

Page 47: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

47

5.5.7 Syöttö- ja tulostuskäskyt

• I/O -käskyt

Page 48: Tietokonetekniikka 5  Operandien  osoittaminen ja  tietokoneen käskykanta

5 Operandien osoittaminen ja tietokoneen käskykanta

48

5.5.8 Ohjauskäskyt

• Mm. keskeytysten prioriteettien asettaminen