Konekieli.

Slides:



Advertisements
Samankaltaiset esitykset
Copyright  Hannu Laine Bittitason-operaatiot Hannu Laine.
Advertisements

Tietokonetekniikka 4 Tieto ja tiedon talletus
15. Loogiset operaatiot.
Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta
Tietokonetekniikka 3 Tietokoneen Rakenteen ja toiminnan perusteet
PROSESSIT Tehtäviä: Limittää usean prosessin suoritus, jotta resurssien käyttö olisi tehokasta, mutta samalla taata, että kaikki prosessit etenevät mielekästä.
2.8.3 Abstraktit tietotyypit
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
Etusivun otsikko Alarivit tulevat näin lorem ipsum dolor Lorem ipsum dolor sed diam TK00507 Mikrotietokoneet I 3 opintopistettä Petri Nuutinen.
R-125 R-50 RA R-100 R-200 R-150 ALAL. ÖL P-3 150*150 P-1 125*125 P-2 125*2000 Luiskat cm Tasot cm Yhdistäminen © Apu-Tuote Oy.
Käyttöjärjestelmät Johdanto. Kurssimateriaalista 15 lukua, jotka vastaavat enemmän tai vähemmän 15 kahden tunnin pakettia Perustuu Gary Nuttin Operating.
KERTAUSTA PERUSASTEEN MATEMATIIKASTA Piia junes
Prosenttilaskua, tiivistelmä
LUKUJÄRJESTELMÄMUUNNOKSET
E-Commerce 2010: Business, Technology, Society 6e
5.3.3 Koodin generointi Koodin generointi tarkoittaa objektikoodin eli konekielisen ohjelman tuottamista. Generointi jakautuu kolmeen osatehtävään: 1.Muistin.
Muistinhallinta. 2 Teknisiä kehitysaskelia §Muisti- ja osoiteavaruuden erottaminen toisistaan l virtuaaliosoitteiden avulla muistin koko voi olla suurempi.
Tiedon esittäminen.
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
2. Vuokaaviot.
1.a) f(x) = 2x(x2 – 3) = 0 2x = tai x2 – 3 = 0 x = tai x2 = 3
Ohjelmointi.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Visual Basic -ohjelmointi
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
XNA peliohjelmointi. XNA Perustuu Microsoftin kehittämään.NET- arkkitehtuuriin ja C#-kieleen. XNA:lla tehdyt pelit toimivat Windows ja XBOX360-alustoilla.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
PARAABELI (2. ASTEEN FUNKTION KUVAAJIA)
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Tietokoneen arkkitehtuuri ja konekieli Tietotekniikan perusteet Pekka Orponen.
Logiikka.
Tietokoneen rakenne matalalla tasolla KYMENLAAKSON AMMATTIKORKEAKOULU Jarkko Ansamäki, kevät 2002.
Visual Basic -ohjelmointi
Liukulukulaskenta. Yleistä liukuluvuista Tarvitaan reaalilukujen esittämiseen tietokoneella  esim. matemaattiset mallit Kaikkia reaalilukuja ei ole mahdollista.
Arkkitehtuuri prosessori esitelmä Itanium & TMS320C67x
Funktio.
Loogiset piirit Puolijohteet Puolijohdekomponentit Loogiset piirit.
Ohjelma Mikro-ohjelmointi Symbolinen konekieli Osoitustavat.
Kiikuista jatkoa.
Mikro-ohjelmoitava tietokone
Aiheet ● Ohjelmointikielten kääntäminen ● Kieliopin määrittely ● Kääntäjän toiminta.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembler.
Jatkeet TIES341 Funktio-ohjelmointi 2 Kevät 2006.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Yhden bitin asettaminen Javalla
Siirtorekisterin toteutus Javalla
13. Loogiset operaatiot.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
9. Aritmeettiset operaatiot
9. Aritmeettiset operaatiot
6. Konekäskyjen suorittaminen
Tietokoneen toiminta (2 ov)
Tietokoneen toiminta (2 ov)
5. Aliohjelmien toteutus
Tietokoneen toiminta (2 ov = 4 op)
2. TTK-91 –tietokone ja sen simulaattori
2. TTK-91 –tietokone 2.0 Mikä TTK-91? Ja mitä hyötyä siitä on?
Luku 12 Java-ohjelmien suoritus
3. TTK-91-käskykanta Symbolisen konekielen tavalliset käskyt
4. Ohjelmointi konekielellä (TTK-91 ja Titokone)
13. Loogiset operaatiot.
Luku 12 Java-ohjelmien suoritus
Iitin yläaste Matematiikka 7. luokka
3. TTK-91-käskykanta Symbolisen konekielen tavalliset käskyt
Jakso 4 Aliohjelmien toteutus
Esityksen transkriptio:

Konekieli

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

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.

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 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/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 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 suoritus Luetaan käsky muistista ohjelma Luetaan käsky muistista Prosessori 00000011 00000110 00000000 Luetaan käskyn tarvitsema data muistista 00010000 25 82 AX Suoritetaan yhteenlasku 57 +25=82 data add ax,[1000] Talletetaan tulos 57 1000

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 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, 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, 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 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ä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äskyt INC lisää arvoa yhdellä INC AX INC [1000] DEC vähentää arvoa yhdellä

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ä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ä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äskyt DIV jaetaan DX:AX-rekistereissä tai AX-rekisterissä oleva arvo IDIV kuten div, mutta käytetään etumerkillisillä luvuilla

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ä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ä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

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ä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äskyt 120 CALL 200 123 … 200 … RET 123