Konekieli
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

Konekieli PowerPoint PPT Presentation


  • 91 Views
  • Uploaded on
  • Presentation posted in: General

Konekieli. 00000011. 00000110. 00000000. 00010000. 010001011. 01101100. 10110011. 01011010. 10001010. 00101010. Konekieli. Konekieli on binaarilukuja, jotka prosessori tulkitsee käskyiksi. Konekieli.

Download Presentation

Konekieli

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Konekieli

Konekieli


Konekieli1

00000011

00000110

00000000

00010000

010001011

01101100

10110011

01011010

10001010

00101010

Konekieli

  • Konekieli on binaarilukuja, jotka prosessori tulkitsee käskyiksi


Konekieli2

Konekieli

  • Prosessori suorittaa muistissa olevia konekielisiä käskyjä. (Käskyt ovat käytännössä binaarilukuja).

  • Prosessorin tuntemia käskyjä kutsutaan käskykannaksi.

  • Eri prosessoreilla on eri käskykanta.

    • Esim. Applen koneissa käytetyssä prosessorissa on täysin eri käskykanta kuin PC:n prosessoreissa.

    • Pentium prosessorit sisältävät 80386-prosessorin käskykannan.


Konekieli3

Konekieli

  • Konekielen käskyt ovat yksinkertaisia.

    • Siirtävät tietoa muistin ja rekisterien välillä

    • Käsittelevät bittejä tai 8-64 bittisiä lukuja

  • Uusissa prosessoreissa on mukana matematiikkaprosessori, joka osaa laskea vaativampaa matematiikkaa mm. liukulukulaskentaa.


Konekieli assembler

Konekieli/Assembler

  • Konekielen käskyt ovat lukuja.

  • Assemblerissa eli symboolisessa konekielessä käskyille on annettu nimet

    • Konekieli:

      00000011 00000110 00000000 00010000

    • Assembler:

      MOV AX, [1000]

  • Assembler-ohjelma on käännettävä konekieliseksi ennen käyttöä.


Konekieli assembler1

Konekieli/Assembler

  • Konekieli tarkoittaa prosessorin ymmärtämiä käskyjä.

  • Jokaisella prosessorityypillä on oma konekielensä.

  • Ohjelmat on muutettava konekielisiksi ennen niiden suorittamista.

  • Korkean tason ohjelmointikielillä tehty ohjelma muutetaan konekieliseksi:

    • Kääntämällä ennen ohjelman suoritusta

    • Tulkkaamalla ohjelman suorituksen aikana


K skyn suoritus

Käskyn suoritus

  • Esimerkkinä käsky ADD AX, [1000], joka lisää AX-rekisterissä olevaan arvoon muistipaikassa 1000 olevan luvun.

  • Prosessori lukee käskyn muistista

  • Katsoo, tarvitaanko käskyn suorittamiseen dataa muistista

  • Lukee datan muistista (osoitteesta 1000)

  • Tulkitsee käskyn

  • Suorittaa käskyn mukaisen toiminnan eli yhteen laskun

  • Tallentaa tuloksen eli laittaa summan rekisteriin AX


K skyn suoritus1

Käskyn suoritus

Muisti

  • Luetaan käsky muistista

ohjelma

Prosessori

00000011

00000110

  • Luetaan käskyn tarvitsema data muistista

00000000

00010000

25

82

AX

  • Suoritetaan yhteenlasku

57

+25=82

data

add ax,[1000]

  • Talletetaan tulos

57

1000


Konekieli4

Konekieli

  • Konekieliset käskyt muodostuvat itse käskystä ja operandeista. Esim:

    ADD AX,[1000]

  • Käsky on ADD ja operandit AX ja [1000]

  • Käskyissä on 0-2 operandia.


Konekieli osoitusmuodot

Konekieli, osoitusmuodot

  • Välitön osoitus.

    • Operandi on suoraan jokin luku esim:

      ADD AX, 10 (a=b+10;)

    • Tarkoittaa, että lisätään luku 10

  • Rekisteriosoitus

    • Operandissa kerrotaan rekisteri, jota käsitellään. Esim:

      ADD AX, 10

    • Lisätään rekisteriin AX luku 10


Konekieli osoitusmuodot1

Konekieli, osoitusmuodot

  • Suora osoitus

    • Kerrotaan suoraan käsiteltävän muistipaikan osoite. Esim:

      ADD AX, [1000]

    • Lisätään AX-rekisteriin osoitteessa 1000 oleva arvo.

    • Huomaa hakasulut


Konekieli osoitusmuodot2

Konekieli, osoitusmuodot

  • Epäsuora osoitus

    • Käytetään jotakin rekisteriä kertomaan muistiosoite. Käytössä ovat rekisterit BX, BP, SI, DI. Esim:

      ADD AX, [BP]

    • Lisätään AX-rekisteriin arvo, joka on BP-rekisterin osoittamassa paikassa. Jos BP-rekisterissä on luku 1000, lisätään osoitteessa 1000 oleva luku.

    • Huomaa hakasulut


Konekieli yleisimm t k skyt

Konekieli, yleisimmät käskyt

  • MOV, siirtää tai oikeammin kopioi tietoa

    • MOV AX, BX kopioi BX-rekisterissä olevan tiedon AX-rekisteriin

    • MOV AX, [1000] kopioi muistiosoitteesta 1000 luvun AX-rekisteriin

    • Huomaa, että tieto kopioidaan toisesta operandista ensimmäiseen


Konekieli yleisimm t k skyt1

Konekieli, yleisimmät käskyt

  • ADD laskee kaksi arvoa yhteen

  • ADC laske kaksi arvoa ja Carry-bitin arvon yhteen.

  • SUB vähennyslasku

  • SBB vähennyslasku, joka ottaa Carry-bitin mukaan


Konekieli yleisimm t k skyt2

Konekieli, yleisimmät käskyt

  • INC lisää arvoa yhdellä

    • INC AX

    • INC [1000]

  • DEC vähentää arvoa yhdellä


Konekieli yleisimm t k skyt3

Konekieli, yleisimmät käskyt

  • Loogiset käskyt

    • AND, OR, XOR suorittavat loogisen operaation kahden luvun bittien välillä.

    • NOT kääntää luvun bitit, nollat ykkösiksi ja päin vastoin


Konekieli yleisimm t k skyt4

Konekieli, yleisimmät käskyt

  • Loogiset käskyt

  • Siirto ja pyöritys

    • Siirtävät luvun bittejä vasemmalle tai oikealle

    • SHL, SHR siirtävät bittejä. Alkupäähän tulee 0 ja loppupäästä bitti siirretään Carry-lippuun


Konekieli yleisimm t k skyt5

Konekieli, yleisimmät käskyt

  • MUL kertoo AX tai AL rekisterissä olevan arvon operandin kertomalla luvulla

    • MUL BX kertoo AX ja BX rekisterin arvot keskenään. Tuloksen alemmat 16 bittiä AX rekisterissä ja ylemmät DX rekisterissä

    • MUL BL kertoo BL ja AL rekisterien arvot keskenään. Tulos AX-rekisterissä.

  • IMUL kuten MUL, mutta käytetään etumerkillisten lukujen kertomiseen


Konekieli yleisimm t k skyt6

Konekieli, yleisimmät käskyt

  • DIV jaetaan DX:AX-rekistereissä tai AX-rekisterissä oleva arvo

  • IDIV kuten div, mutta käytetään etumerkillisillä luvuilla


Konekieli yleisimm t k skyt7

Konekieli, yleisimmät käskyt

  • Haarautuminen.

  • Normaalisti prosessori suorittaa muistissa olevia käskyjä järjestyksessä. Haarautumisella poiketaan tästä järjestyksestä

  • JMP 1000 hyppää osoitteeseen 1000


Konekieli yleisimm t k skyt8

Konekieli, yleisimmät käskyt

  • Ehdollinen haarautuminen

    • Haaraudutaan, jos lippurekisterissä on haluttu tai halutut arvot.

    • Esim JZ haarautuu, jos Z-lippu on 1

    • Ehdollisia haarautumiskäskyjä on useita. Monet näistä tarkoittavat samaa. Esim. JE ja JZ ovat sama käsky. Joskus on loogisempaa käytää JZ-käskyä ja muulloin taas JE-käskyä.

  • Kaikista on myös käänteinen versio. Esim. JNZ haarautuu, jos Z ei ole 1


Konekieli yleisimm t k skyt9

Konekieli, yleisimmät käskyt

  • jaabovejzzero set

  • jaeabove or equaljnanot above

  • jbbelowjnaenot above or equal

  • jbebelow or equaljnbnot below

  • jccarry setjnbenot below or equal

  • jeequaljnccarry not set

  • jggreaterjnenot equal

  • jgegreater or equaljngnot greater

  • jllessjngenot greater or equal

  • jleless or equaljnlnot less

  • jooverflow setjnlenot less or equal

  • jpparity setjnooverflow not set

  • jpe even parityjnssign not set

  • jpoodd parityjnzzero not set

  • jssign setjnpparity not set


Konekieli yleisimm t k skyt10

Konekieli, yleisimmät käskyt

  • Ehdollisessa haarautumisessa on merkittävä puute: hyppy voi olla korkeintaan 128 taaksepäin ja 127 eteenpäin.

  • Ongelma voidaan kiertää käyttämällä JMP-käskyä apuna:

Toimiva versio

100 JNE 105

102 JMP 500

105 …

Liian pitkä hyppy

100 JE 500


Konekieli yleisimm t k skyt11

Konekieli, yleisimmät käskyt

  • CALL aliohjelmakutsu

  • CALL 1200 kutsuu aliohjelmaa osoitteessa 1200

  • Aliohjelmasta palataan RET-käskyllä

  • CALL laittaa seuraavan käskyn osoitteen (ns. paluuosoite) pinoon ja hyppää aliohjelmaan. RET käsky lukee paluuosoitteen pinosta ja hyppää tähän osoitteeseen.


Konekieli yleisimm t k skyt12

Konekieli, yleisimmät käskyt

  • 120 CALL 200

  • 123 …

  • 200 …

  • RET

123


  • Login