1 / 48

Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta

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

hamlet
Download Presentation

Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tietokonetekniikka5 Operandien osoittaminen ja tietokoneen käskykanta • Lähde: Haltsonen, S., Rautanen, E. • Pieka 02.02.2009 • Kuvagalleria 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 5 Operandien osoittaminen ja tietokoneen käskykanta

  3. 5.2 Käskyn rakenne 5 Operandien osoittaminen ja tietokoneen käskykanta

  4. Käskyn rakenne(instructionformat) Osoitekenttä: Mikäli operandi tai tulos sijaitsee muistissa, sen sijainnin ilmoittavaa käskyn osaa nimitetään osoitekentäksi (addressfield). Osoitekenttä voi olla useita sanoja ja haku voi viedä useita muistijaksoja. 5 Operandien osoittaminen ja tietokoneen käskykanta

  5. Kuva 5-4. Laskentakäskyn ja hyppykäskyn rakenne Laskentakäsky Hyppykäsky 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). 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) 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 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 5 Operandien osoittaminen ja tietokoneen käskykanta

  10. Käsky, jossa on yksi muistiosoite, Akku  nopeampi 5 Operandien osoittaminen ja tietokoneen käskykanta

  11. Käsky, jossa on yksi muistiosoite ja yksi rekisteriosoite: Rekisteriryhmä 5 Operandien osoittaminen ja tietokoneen käskykanta

  12. Käsky, jossa on kaksi rekisteriosoitetta Käskyn suorituksessa ei ole lainkaan muistiviittauksia.  Nopea RISC –koneissa käsky on yhden sanan mittainen. Käskyssä ei ole lainkaan muistiviittausta. Ainoa muistiviittaus on käskyn haku. 5 Operandien osoittaminen ja tietokoneen käskykanta

  13. Käsky, jossa on kolme rekisteriosoitettaKolmen operandin käskyn periaate 5 Operandien osoittaminen ja tietokoneen käskykanta

  14. Nollan osoitteen käskyn periaate Operandit haetaan pinosta ja tulos viedään pinoon. 5 Operandien osoittaminen ja tietokoneen käskykanta

  15. 5.4 Osoitusmuodot(Addressingmode) • 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 5 Operandien osoittaminen ja tietokoneen käskykanta

  16. 5.4.1 Välitön osoitus(immediateaddressing) • 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. 5 Operandien osoittaminen ja tietokoneen käskykanta

  17. 5.4.2 Rekisteriosoitus(registeraddressing) • Operandi (kohde tai lähde) on rekisterissä. • Etua, jos operaation tulosta käytetään hyväksi seuraavassa käskyssä. 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 !!!! 5 Operandien osoittaminen ja tietokoneen käskykanta

  19. Kuva 5-13. Muistiosoitteen täydentäminen ohjelmalaskurin avulla 5 Operandien osoittaminen ja tietokoneen käskykanta

  20. 5.4.4 Rekisteriepäsuora osoitus 5 Operandien osoittaminen ja tietokoneen käskykanta

  21. 5.4.5 Indeksoitu osoitus ja kantaosoitus • Indeksoitu osoitus (indexedaddressing, Indexregisteraddressing) • Kantaosoitus (basedaddressing, baseregisteraddressing) • Rekisteriepäsuoran osoituksen ylestyksiä • Muistiosoite saadaan lisäämällä indeksi- tai kantarekisterin sisältöön käskyssä oleva vakio tai siirros (displament, offset). 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. 5 Operandien osoittaminen ja tietokoneen käskykanta

  23. Indeksoitu osoitus ja kantaosoitus 5 Operandien osoittaminen ja tietokoneen käskykanta

  24. Taulukon käsittely indeksoitua osoitusta käyttäen 5 Operandien osoittaminen ja tietokoneen käskykanta

  25. Tietorakenteen käsittely • Kuva 5-17 ! 5 Operandien osoittaminen ja tietokoneen käskykanta

  26. Tietorakenteen käsittely 5 Operandien osoittaminen ja tietokoneen käskykanta

  27. 5.4.6 Indeksoitu kantaosoitus 5 Operandien osoittaminen ja tietokoneen käskykanta

  28. 5.4.7 Suhteellinen osoitus 5 Operandien osoittaminen ja tietokoneen käskykanta

  29. Mikro-ohjaimen osoitusmuodot • Katso toinen PPT ! 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 5 Operandien osoittaminen ja tietokoneen käskykanta

  31. 5.5.1 Siirtokäskyt(data transferinstruction) • 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 5 Operandien osoittaminen ja tietokoneen käskykanta

  32. 5.5.2 Aritmeettiset käskyt(arithmeticinstruction) • Yhteen-, vähennys-, kerto-, ja jakolaskut • Inkrementointi (incrementing) • Dekrementointi (decrementing) • Vertailu (comparison) • Laskutoimitukset kahdelle luvulle kerrallaan • C-lippu • Liukulukukäskyjä 5 Operandien osoittaminen ja tietokoneen käskykanta

  33. 5.5.3 Loogiset käskyt(Logicalinstruction) • 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 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; 5 Operandien osoittaminen ja tietokoneen käskykanta

  35. AND (JA) -operaatio Sana 1100 1010 Maski 1111 1001 Tulos 1100 1000 • AND – maskaus: Maskin 1 siirtää (säilyttää) ja 0 nollaa kyseisen bitin A B F 0 00 0 1 0 1 0 0 1 11 5 Operandien osoittaminen ja tietokoneen käskykanta

  36. OR (TAI) -operaatio Sana 1100 1010 Maski 1111 1001 Tulos 1111 1011 • OR – maskaus: Maskin 1 pakottaa 1:ksi ja 0 siirtää (säilyttää) kyseisen bitin A B F 0 00 0 1 1 1 0 1 1 11 5 Operandien osoittaminen ja tietokoneen käskykanta

  37. NOT (EI) -operaatio Sana 1100 1010 ~ 0011 0101 • Kääntää eli invertoi bitin arvon ulostuloon Totuustaulu A F 0 1 1 0 5 Operandien osoittaminen ja tietokoneen käskykanta

  38. XOR (ehdon tai) -operaatio Sana 1100 1010 Maski 1111 1001 Tulos 0011 0011 • XOR – maskaus: Maskin 1 invertoi (kääntää) ja 0 siirtää (säilyttää) kyseisen bitin A B F 0 00 0 1 1 1 0 1 1 1 0 5 Operandien osoittaminen ja tietokoneen käskykanta

  39. 5.5.4 Sivuttaissiirto- ja rotaatiokäskyt 5 Operandien osoittaminen ja tietokoneen käskykanta

  40. Aritmeettinen sivuttaissiirto Kahdenkomplementtilukujen käsittely 5 Operandien osoittaminen ja tietokoneen käskykanta

  41. Looginen sivuttaissiirto Kahdella kertominen ja jakaminen 5 Operandien osoittaminen ja tietokoneen käskykanta

  42. 5.5.5 Hyppy- ja haarautumiskäskyt • Hyppykäskyt (jumpinstruction) • Ehdottomia tai ehdollisia • Haarautumiskäskyt (branchinstruction) • 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 ! 5 Operandien osoittaminen ja tietokoneen käskykanta

  43. Hyppy- ja haarautumiskäskyt 5 Operandien osoittaminen ja tietokoneen käskykanta

  44. Hyppy- ja haarautumiskäskyt 5 Operandien osoittaminen ja tietokoneen käskykanta

  45. 5.5.6 Aliohjelmakäskyt • call • return • Ohjelmalaskurin arvo (EIP) 5 Operandien osoittaminen ja tietokoneen käskykanta

  46. Aliohjelman periaate 5 Operandien osoittaminen ja tietokoneen käskykanta

  47. 5.5.7 Syöttö- ja tulostuskäskyt • I/O -käskyt 5 Operandien osoittaminen ja tietokoneen käskykanta

  48. 5.5.8 Ohjauskäskyt • Mm. keskeytysten prioriteettien asettaminen 5 Operandien osoittaminen ja tietokoneen käskykanta

More Related