TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembler.

Slides:



Advertisements
Samankaltaiset esitykset
Tietokonetekniikka 4 Tieto ja tiedon talletus
Advertisements

15. Loogiset operaatiot.
@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
Tietokonetekniikka 3 Tietokoneen Rakenteen ja toiminnan perusteet
JavaScript (c) Irja & Reino Aarinen, 2007
4. Lausekielinen ohjelmointi
HASH-Objekti ”Taulukkotietorakenne” Sugif by Heikki Herva.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Käännösaikaiset virheilmoitukset • Tulee silloin, kun koodissa on jotain sellaista, joka ei ole Javan syntaksin mukaista • Esim. – Syntax error, insert.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Sovellusohjelman suunnittelu & toteutus
Lukemaan oppii vain lukemalla
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.
Konekieli.
13. Hyvä ohjelmointitapa (osa 1)
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Ohjelmointi.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
Visual Basic -ohjelmointi
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
11. Javan toistorakenteet
Muuttujat ja vakiottMyn1 Muuttujat ja vakiot PHP-kielen syntaksi on lainattu suurimmaksi osaksi C- kielestä. PHP on erityisesti HTML-dokumenttien sisään.
HelloWorld-ohjelma. 5.2 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
GNU- ohjelmointityökalut Samppa Rönkä OH2. GNU ? GNU (GNU's Not Unix) on ohjelmoija Richard Stallmanin vuonna 1983 käynnistämä projekti, jonka tavoitteena.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
Tietokoneen arkkitehtuuri ja konekieli Tietotekniikan perusteet Pekka Orponen.
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Listat eli luettelot listaelementit ovat lohkoelementtejä:  lista ja listan alkiot alkavat uudelta riviltä  listan jälkeen tuleva elementti alkaa uudelta.
Ohjelma Mikro-ohjelmointi Symbolinen konekieli Osoitustavat.
Mikro-ohjelmoitava tietokone
Aiheet ● Ohjelmointikielten kääntäminen ● Kieliopin määrittely ● Kääntäjän toiminta.
Lausekielinen ohjelmointi. 4.2 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi,
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli.
String-vertailusta ja Scannerin käytöstä (1/2)
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Procedural Language Extensions to SQL
7. Hyvä ohjelmointitapa..
13. Loogiset operaatiot.
Tietokoneen toiminnasta ja rakenteesta
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
GNU-ohjelmointityökalut Sami Husso
GNU-Ohjelmointityökalut
5. HelloWorld-ohjelma.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö
14. Hyvä ohjelmointitapa.
7. Hyvä ohjelmointitapa..
4. Ohjelmointi konekielellä (TTK-91 ja Titokone)
Tietokoneen toiminta (2 ov)
Luento 10 Käännös, linkitys ja lataus
11. Käännös, linkitys ja lataus
7. Näytölle tulostaminen
5. HelloWorld-ohjelma.
2. TTK-91 –tietokone 2.0 Mikä TTK-91? Ja mitä hyötyä siitä on?
3. TTK-91-käskykanta Symbolisen konekielen tavalliset käskyt
4. Ohjelmointi konekielellä (TTK-91 ja Titokone)
13. Loogiset operaatiot.
Tietokoneen toiminnasta ja rakenteesta
3. TTK-91-käskykanta Symbolisen konekielen tavalliset käskyt
OHJELMOINTITAITO ICT02D 12 ECTS.
4. Luokan testaus ja käyttö olion kautta
Esityksen transkriptio:

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembler

Loogiset piirit Assembler Tietokonealusta Konekieli Assembly kieli Virtual machine Korkeantason kieli Assembler on ohjelma, joka kääntää Assembly kielisen ohjelman konekielelle Konekieli on joukko binäärisiä ”sanoja” jotka vastaavat prosessorin käskyjä Assembly kieli antaa binäärisille bittijoukoille paremmin muistettavat vastineet, esim. – – M=M-1 Jokaiselle prosessorityypille on oma konekieli ja siten myös assembly kieli

Toimintalogiikka Toista, kunnes.asm tiedoston EOF – Lue seuraava Assembly kielinen komento – Paloittele komento osiin – Hae osia vastaava binäärikoodi – Yhdistä koodit yhdeksi 16-bittiseksi konekieliseksi käskyksi – Anna ulostulona konekielinen koodi (kirjoita.hack tiedostoon uusi rivi)

Ilman symboleita Jos tyhjä rivi tai kommentti  ei tehdä mitään Jos -merkillä, niin A-käsky Esim. String  pitää muuttaa “ ” Jos ei, niin tutkitaan löytyykö riviltä = -merkkiä ja ; -merkkiä, jotta saadaan selville mitkä (dest=comp;jump) osat käskyssä on Selvitetään dest osaa vastaava binääriluku Selvitetään comp osaa vastaava binääriluku Selvitetään jump osaa vastaava binääriluku Kasataan 16-bittinen konekielinen C-käsky yhdistämällä osat Voidaan olettaa että kommentit alkavat aina rivin alusta ja rivien lopussa ei ole kommentteja

Symboleiden kanssa Käydään koodi läpi etsimällä symbolit, tai (LOOP) – Lisäksi riveiltä poistetaan kaikki kommentit ja kommenttien jälkeiset merkit, jos niitä on, esim. – D=M // D = first number Kahdenlaisia symboleita – Muuttujia, joille pitää varata muistiosoite – Osoitteita joihin pitää hypätä, eli jossain on (LOOP), jonka rivinumero tulee selvittää Käydään ensin läpi löytyykö symbolia vastaava hyppypaikka eli symboli suluissa (esim. (LOOP)) – Löytyykö sulkuja? Jos löytyy, lisää suluissa oleva symboli taulukkoon ja tallenna sulku-rivin alapuolisen rivin numero vastaamaan symbolia Sen jälkeen käydään koodi uudestaan läpi, etsien symboleita, Jos symboli taulukossa, niin se on hyppy-symboli Jos symbolia ei taulukossa, kyseessä on muuttuja, jolle pitää varata paikka RAM muistista (aloitetaan muistipaikasta 16) Symboolitaulukon toteutus esim. Javan hashtable:lla Kun taulu valmis korvataan symbolit niitä vastaavilla osoitteilla Lisäksi taulussa pitää olla muutama etukäteen määritelty symboli, jotka pitää muuttaa RAM osoitteiksi, esim. SCREEN

Assemblerin toteutus Millä tahansa ohjelmointikielellä Suositeltava arkkitehtuuri – Parser moduuli: purkaa käskyt osiin – Code moduuli: kääntää osat binääriseksi – SymbolTable moduuli: hallinnoi symbolitaulua – Main moduuli: tiedoston luku/kirjoitus, käyttää yo. moduuleja ulostulon rakentamiseen Testaa Assembleriasi testiohjelmilla (add.asm etc.) – Versiot ilman symboleita tai symboleiden kanssa Lopuksi voit verrata Assembler simulaattorilla simulaattorin kääntämää koodia sinun Assemblerin kääntämään koodiin

dest=comp;jump Binäärinen: a c1 c2 c3 c4 c5 c6 d1 d2 d3 j1 j2 j3 compdest jump C-instruction Not // D=A // // D=M// // ;JMP // 111accccccdddjjj

(a=0)c1 c2 c3 c4 c5 c6(a=1) D A M !D !A !M -D A M D A M+1 D A M-1 D+A D+M D-A D-M A-D M-D D&A D&M D|A D|M Comp(ute)

j1 j2 j3 (out 0) Mnemonic Effect null No jump JGT If out > 0 jump JEQ If out = 0 jump JGE If out ≥ 0 jump JLT If out < 0 jump JNE If out ≠ 0 jump JLE If out ≤ 0 jump JMP Jump Hyppykäskyt Mnemonic ≈ muistisääntö (assembly kielinen toteutus)

Dest(ination) d1 d2 d3 Mnemonic Destination (minne tallennetaan) 0 0 0null Operaation tulosta ei tallenneta 0 0 1M Memory[A] (RAM muistipaikka A) 0 1 0D D register MD Memory[A] and D register A A register AM A register and Memory[A] AD A register and D register AMD A register, Memory[A], and D register