Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Konekieli.

Samankaltaiset esitykset


Esitys aiheesta: "Konekieli."— Esityksen transkriptio:

1 Konekieli

2 Konekieli Konekieli on binaarilukuja, jotka prosessori tulkitsee käskyiksi

3 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 prosessorin käskykannan.

4 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.

5 Konekieli/Assembler Konekielen käskyt ovat lukuja.
Assemblerissa eli symboolisessa konekielessä käskyille on annettu nimet Konekieli: Assembler: MOV AX, [1000] Assembler-ohjelma on käännettävä konekieliseksi ennen käyttöä.

6 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

7 Käskyn suoritus Esimerkkinä käsky ADD AX, [1000], joka lisää AX- rekisterissä olevaan arvoon muistipaikassa 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

8 Käskyn suoritus Luetaan käsky muistista
ohjelma Luetaan käsky muistista Prosessori Luetaan käskyn tarvitsema data muistista 25 82 AX Suoritetaan yhteenlasku 57 +25=82 data add ax,[1000] Talletetaan tulos 57 1000

9 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.

10 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

11 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

12 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

13 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

14 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

15 Konekieli, yleisimmät käskyt
INC lisää arvoa yhdellä INC AX INC [1000] DEC vähentää arvoa yhdellä

16 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

17 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

18 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

19 Konekieli, yleisimmät käskyt
DIV jaetaan DX:AX-rekistereissä tai AX-rekisterissä oleva arvo IDIV kuten div, mutta käytetään etumerkillisillä luvuilla

20 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

21 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

22 Konekieli, yleisimmät käskyt
ja above jz zero set jae above or equal jna not above jb below jnae not above or equal jbe below or equal jnb not below jc carry set jnbe not below or equal je equal jnc carry not set jg greater jne not equal jge greater or equal jng not greater jl less jnge not greater or equal jle less or equal jnl not less jo overflow set jnle not less or equal jp parity set jno overflow not set jpe even parity jns sign not set jpo odd parity jnz zero not set js sign set jnp parity not set

23 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

24 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.

25 Konekieli, yleisimmät käskyt
120 CALL 200 123 … 200 … RET 123


Lataa ppt "Konekieli."

Samankaltaiset esitykset


Iklan oleh Google