TALINNA POLÜTEHNIKUM Multimeedia erialaosakond Kert Kompus ASSEMBLER Referaat OPERATSIOONISÜSTEEMI ALUSED MS-18 Tallinn 2018 Sisukord Assembler..................................................................................................................................3 Assemblerprogrammi lähtekood................................................................................................5 Assemblerprogrammi loomine...................................................................................................6 Assemblerkeele laused..........................................................................................
Neljas põlvkond Suurte integraalskeemide kasutuselevõtmine · Toimub mikroskeemide integreerimisastme järsk tõus ja hinna odavnemine Programmeerimise areng · Esimene programmeerimine seisnes arvutiseadme esipaneelil olevate lülitite õigesse asendisse seadmises · Sellisel viisil ei saa teha eriti pikki programme · Arvutitehnika arenemisel ilmus masinkood Assemblerkeel · Masinkoodi asemel masinale orienteeritud keel assembler · Inimesed kasutavad masinkoodi käskude asemel mnemoonilisi käske, mis tõlgitakse translaatori poolt masinkoodi keelde · Kõikidel protsessoritel on ainult temale omane masinkoodide hulk, assembler Kõrgtasemekeeled · Järgmine samm tehti 1954. A. Millal tehti esimene kõrgtaseme keel FORTRAN · Kõrgtaseme keeled imiteerivad loomulike keeli, kasutades kõnekeele sõnu ja üldkasutatavaid matemaatilisi sümboleid · Need keeleed on inimesele mugavamad
Arvuti protsessor on arvuti aju. Nii ütlevad figuratiivsed narratiivid. Aga tõsi, protsessor on see aparaat (mikroskeem ehk chip) mis reaalselt liidab ja korrutab kahendarve. Arvutamine protsessoris toimub sama tehnikaga nagu tavaliste st. kümnendarvudega paberi ja pliiatsiga arvutamisel. Miks talle just meelepärsed kahendarvud on sellepärast, et tema tegeleb tegelikult elektriga: 1 on signaali kõrge nivoo ja 0 madal nivoo. 1.1.Protsessori kirjeldus Assembler keeles programmeerimine on arvutikeel, mis mõnede asjatundjate meelest ei klassifitseerugi keeleks. Assembler on järgnevus sisuliselt masinkeelseid protsessori käske mida esitatakse masinkeele omadega ekvivalentsel kujul kuid inimesele paremini meeldejäävate mnemoonikutena (mov, jmp ...). Need masinkeelsed käsud juhtivad protsessori tööd kõige madalamal tasemel. Assembleris saab tõepoolest võtta konkreetsest protsessorist
Usenet: 1994, suhtlussüsteem Php: 1994, skriptimiskeel, mida kasutatakse peamiselt serveripoolsetes lahendustes dünaamiliste veebilehtede loomise Päevalehed eestis: 1995 esimene eesti päevaleht netis – www.zzz.ee/epl Palm pilot: 1996 Google: 1997, Larry Page ja Sergei Brin Deep blue: 1997, AI, mis võitis males maailmameistrit Wikipedia: 2001, Jimmy Wales and Larry Sanger 6. Nädal Eksamiks: turingi masin, relee, mälutüübid, assembler, kompileerimine, interpreteerimine, jit. Lihtsad andmetüübid, stringid, massiivid, puud. Turingi masin; Alan Turingi 1937. aastal kirjeldatud lihtne abstraktne arvuti, mida kasutatakse arvutatavuse ja selle piiride uurimiseks Relee: mootoriga lüliti Mälutüübid: Assembler: kompilaator, mis tõlgib assemblerkeeles programmi masinkoodiks Kompileerimine: võtab sisendiks kõrgkeelse programmi ja tõlgib selle täitmisprogrammiks
programmi ridade arvu? Vali üks: Ei Jah Mitte alati + Krüpteerige sõna "PÕIKPÄINE" Atbashi šifriga kasutades tähestikku: A B C D E F G H I J K L M N O P Q R S Š Z Ž T U V W Õ Ä Ö Ü X Y; yxüöäõwvutžzšsrqponmlkjihgfedcba Vastus: QFUŽQEUSÄ Millistesse keelte klassidesse kuulub tavapärane assembler? Vali üks või enam: Dünaamiliselt tüpiseeritud Interpreteeritavad + Objektorienteeritud "Käsitsi" mäluhaldusega + Imperatiivne + Milline loetlelust on vajalik digitaalseks allkirjastamiseks? Vali üks: a. Sümmeetrilise võtmega krüptograafia algoritm b. Sümmeetrilise ja asümmeetrilise võtmega krüptograafia algoritm + c. Blokkšifrid ja räsialgoritm d. Asümmeetrilise võtmega krüptograafia algoritm e. Räsialgoritm f. Asümmeetrilise võtmega krüptograafia ja räsialgoritm
program instruction from main memory, this is where it puts it. The COUNT register counts off the steps in a fetch-and-execute cycle. It takes the CPU several steps to fetch and execute an instruction. Hierarhia pistikutest progekeelteni Esimene: programmeerimismeetod: kaablid ja pistikud Teine: von Neumanni arhitektuur, programm malus binaarkoodina:01011101 01001011 01010101 11010101 10101001 ....Lihtsam kirjutada hexas, ntx 4A FC 09 B2 .... Kolmas: Esmane progekeel: assembler. Uks masinakask: tuupiliselt uks rida assembleri-programmi Neljas: Harilik progekeel ehk nn korgkeel (fortran, basic, c, java,python jne jne).Harilikud valemid, if-then-else jne, a la x=2*y+sin(y); Kõrgkeeled on erineva abstraktsusastmega: Masinalähedane ja ebamugav: Fortran, C (portaabel assembler) Abstraktsem ja mugavam: Lisp, Ada, ML, Java, Python, Peale programmeerimiskeelte on veel hulk muid keeli: Päringukeeled (SQL, RDQL, ....) Kujunduskeeled (HTML, PS, ...)
DEUTSCHLAND Referaat Assembler: Formular: Vorstellung Deutschland ist ein Staat in Mitteleuropa. Als Bundesstaat wird die Bundesrepublik Deutschland aus den 16 deutschen Ländern gebildet und stellt die jüngste Ausprägung des deutschen Nationalstaates dar. Die Länder gliedern sich gemäß dem Verfassungsprinzip der kommunalen Selbstverwaltung in kommunale Gebietskörperschaften Amtssprache Deutsch Hauptstadt Berlin Parlamentarische Staatsform Bundesrepublik Parlamentarische Regierungsform Demokratie Fläche 357.104,07 km² Einwohnerzahl 82.117.000 Bevölkerungsdicht 229 Einwohner pro km² e Flagge Wappen Einwohnerzahl Deutschland ist seit der Wiedervereinigung die mit Abstand bevölkerungsreic...
Protsessori käsustik on protsessori ja programmeerija ühine keel. Teisisõnu võimaldab programmeerijal protsessorile ülesandeid anda. Programmi kontrolleri põhimällu laadimiseks tuleb esmalt luua ühendus arvuti ja mikrokontrolleri vahel ning kasutada tarkvara, mis ühildub konkreetse mikrokontrolleriga. Microchip PIC mikrokontrollerite puhul on üheks selliseks tarkvaraks näiteks PBrenner. Assembler on programmeerimiskeel ja assembleri direktiivid on teisisõnu selle keele käsud. 1 3 2. Ülesannete lahendused 1. Programm, mis lülitab nupuvajutusel sisse kaheksa valgusdioodi. Algoritmi plokkskeem: Joonis 1.1. Programmi algoritmi ALGUS plokkskeem EI
Alan Turing Kuidas hindad XML keeles sees olevaid võimalusi väljundi kujundamiseks? Millised vahendid on XML keeles endas väljundi kujundamiseks? Puuduvad Milline XML keelte perekonna liige on ettenähtud XML info kasutajale mugavamaks esitamiseks? XSLT Kas masinkeel on tänaseni kasutusel? Jah Millised järgnevatest olid tõeliselt programmeeritavad keeled? Enigma, Z3, Colossus, Mark I, ABC Computer Millistesse keelte klassidesse kuulub tavapärane assembler? Imperatiivne, interpreteeritav, "käsitsi" mäluhaldusega Milleks loodi keel LISP? Tehisintellekti programmeerimiseks Millised neist on kasutaja tööarvuti operatsioonisüsteemid? Ubuntu, FreeBSD, NetBSD, Windows Server 2003 Mida tähendas algselt lühend CP/M? Control Program/Monitor Arendaja jaoks peaks valmis tehtud tükke pakkuma: operatsioonisüsteem Millises laboris on 60-ndate lõpus ja 70-ndate alguses meisterdatud pildil olev masin,
lahti saada korduvatest programmeerimistest. Programmeerimise areng Esimesed sammud Esimene programmeerimine seisnes arvutiseadme esipaneelil olevate lülitite õigesse asendisse seadmises. Selge on see, et sellisel viisil ei saa väga pikki programme teha. Arvutitehnika arenemisel ilmus masinkood, mille abil programmeerija andis arvutile käske kasutades vastavaid mälupesi, masina võimalused olid paremini ära kasutatud. Assemblerkeel Masinkoodi asemel masinale orienteeritud kood- assembler. Inimesed kasutavad masinkoodi käskude asemel mnemoonilisi käske, mis tõlgitakse translaatori poolt masinkoodi keelde. Kõikidel protsessoritel on ainult temale omane masinkoodide hulk, assembler. Kõrgtaseme keeled Järgmine samm tehti 1954 a, millal tehti esimene kõrgtaseme keel- FORTRAN -(FORmula TRANslator). Kõrgtaseme keeled imiteerivad loomulike keeli, kasutades kõnekeele sõnu ja üldkasutatavaid matemaatilisi sümboleid. Need keeled on inimesele mugavad. Nende abil võib
Programmeerijatele mõeldud kirjeldus mingi süsteemi funktsioonide kasutamiseks programmis, näiteks Java API kirjeldab keeles Java olemasolevaid funktsioone (konkreetselt Java puhul on need jagatud pakettidesse ja klassidesse, aga sellest hiljem...). Programmeerimiskeeltest Eesmärk: mitte töötada riistvara terminites, muuta programmeerimine universaalseks (sõltumatuks konkreetsest arvutitüübist). · masinkood - konkreetse protsessori käsud kahendkujul, elektroonika tase · assembler - madaltaseme programmeerimiskeel, käskude koodid on mnemoonilised (näit. ADD, DIV, MOV, ...), operandide ja aadresside jaoks saab kasutada nimesid, saab deklareerida andmeid, programmi võib varustada kommentaaridega, ... · universaalsed programmeerimiskeeled (ei sõltu protsessori käsustikust) e. kõrgtaseme keeled, saab liigitada paradigma alusel · keskkonnad tööks valmiskomponentidega, võimaldavad "liimida" valmiskomponendid tervikuks
parsimine Eksam– Eksamsüntaksianalüüs – analüüsitakse arvutikeeles/andmestrukrtuurides (ehitatake süntaksipuu) esinevaid stringe vastavalt grammatikareeglitele jit Eksam– Eksaminterpretaator interpreerib vahekoodi Y, kuid kompileerib töö ajal osa Y-st masinkoodiks, mida seejärel täidab (nt Java, C#, Firefoxi JS) – Just-In-Time Eksamcompilation vahekood – nö pseudo-assembler, milleks teisendatakse interpreteerimisel kood, et rida-realt täita programmeerimiskeeled kirjelduskeeled Eksam– text lay - html, html lay - css, database query - sql, data representation - Eksamxml, Eksamjson, csv json Eksam- Eksam{“name”: “John Smith”, “age”: 35, “address”: {“city”:”Tallinn”, “street”: “Mere”}} html Eksam- Eksam
üks bold sõna
sql Eksam- Eksamselect name, age from persons where age>18;katkestuse või restardi taotlus Kontrollinfo Kontrollpakett Andmepakett Andmed Järjestuse Loogilise Formaadi number kanali nr tüüp Kevad 2009 Tallinna Polütehnikum 15 X.25 protokolle Asünkroonterminal Sünkroonterminal PAD (packet assembler/disaassembler) - paketter Kevad 2009 Tallinna Polütehnikum 16 X.25 signaalid ja andmed Ühenduse loomiseks saadab ühenduse algataja (DTE A) sihtkoha jaamale (DTE B) ühenduse loomiseks ühenduse taotluse paketi Valmisoleku korral vastab sihtkoha jaam paketiga ühenduse aktsept, millega annab teada, et on valmis andmevahetuseks Vastuse (aktsepti) saamise järel saab jaam DTE A alustada andmepakettide saatmist
is released within 18-24 months of the previous chip started 1965 - Digital Equipment Corp (abbreviated DEC) introduced the PDP-8, the 1998 - Steve Jobs introduces the iMac first commercially successful minicomputer Kõrgkeeled on erineva abstraktsusastmega: Masinalähedane ja Opsüsteemi põhieesmärgid: ebamugav: Fortran, C (portaabel assembler), Abstraktsem ja Pakkuda programmeerijale valmistehtud standardtükke. mugavam: Lisp, Ada, ML, Java, Python Võimaldada kasutajal arvutis ühtemoodi ja harjumuspäraselt tegutseda, sõltumatult sellest, mis Kompileerimine: masinkoodis programm nimega kompilaator programmid tal arvutis on. teisendab keeles X programmi masinkoodfailiks Y
Iga sündmusega on seotud ajatempel, mis näitab · MMU Memory Management Unit } järgne selle sündmuse toimumise aega Programmide töö Assembler-koodi saamine katastroofilisi tagajärgi. Tulemus ei oma peale piir- Ajatemplid on täielikult reastatud süsteemi initsialiseerimine > gcc S hello.c aega Diskreetne sündmusesimulaator peab globaalset ülesannete vahetamine Nimede tabel objekt-failis mingit väärtust
l6-lr) Bl;ilsc Pn$.il1-:lntltecliliilc illitslt ebmgqav: Fortran, C (portaabel assembler), ALslrgKse[-ia r Pakkudaprogrffimeedjalevalmisehtudstandardtiikke- 1616-11 I6 Leibniz Lcibnizi anlrli(167 l)liiris. lrhuras. kormtas_ .jagas
1; when COUNT is 2, it does step 2; and so forth. Remember that as the COUNT register counts 0, 1, 2,..., just one machine language program is being executed Hierarhia pistikutest progekeelteni Esimene: programmeerimismeetod: kaablid ja pistikud Teine: von Neumanni arhitektuur, programm mälus binaarkoodina: 01011101 01001011 01010101 11010101 10101001 .... Lihtsam kirjutada hexas, ntx 4A FC 09 B2 .... Kolmas: Esmane progekeel: assembler. Üks masinakäsk: tüüpiliselt üks rida assembleriprogrammi Neljas: Harilik progekeel ehk nn kõrgkeel (fortran, basic, c, java, python jne jne). Harilikud valemid, if-then-else jne, a la x=2*y+sin(y); Ecki assembler This program counts. It starts by putting the number 1 into memory location 12, and then it adds one to the number in that location over and over, forever. Loeng 7 Programming is linguistic
ASCC * Automatic Sequence Controlled Calculator [IBM] ASCII American Standard Code for Information Interchange ASD Application Structure Database [Microsoft] + Automatic Skip Driver [Microsoft] ASF Active Streaming Format [Microsoft] + Advanced Systems Format [Microsoft] ASIC Application-Specific Integrated Circuit ASIT Advanced Security and Identification Technology ASL Adaptive Speed Levelling ASLM Apple Shared Library Manager [Macintosh] .ASM Assembler Source Language (file name extension) ASMP Asymmetric Multprocessing ASN Abstract Syntax Notation + Autonomous System Number ASO Automated Systems Operations ASP Active Server Page [Microsoft] + Application/Authorized Service Provider + Aspect Oriented Programming + Association of Shareware Professionals .ASP Active Server Page (file name extension) ASPI Advanced SCSI Programming Interface [Adaptec] ASPS Advanced Signal Processing System
Üldiselt on funktsioonide arvule tuginemine adekvaatsem projekti algusfaasis, koodiridadele tuginemine aga projekti edasistes faasides. Eritüübiliste mudelite vahelise ülemineku hõlbustamiseks on erinevate keelte jaoks leitud keskmised arvestuslikud koodiridade arvud, mis on vajalik ühe funktsiooni realiseerimiseks (funktsioonidena vaadeldakse kasutaja sisendit, väljundit, väliseid andmeliideseid, päringuid jne): assembler 320, C 128, C++ 56, Java 55, Visual Basic 35 jne. · Kulude mudelid aitavad kaasa riskide analüüsile ning võimaldavad ligikaudselt kavandada projekti, kui selle maksumus on ette antud (muutes vastavaid parameetreid, kuni kulud etteantud piiridesse mahub). · Kulude hinnang saab tugineda eelkõige senise praktika kompetentsele analüüsile, mistõttu seda ei saa heal tasemel teha projekti- või asutuseväliste inimeste poolt:
2.3.1. Andmevahetuse meetodid 82 2.3.2. Rööpvärat 87 2.3.3. Jadavärat 90 2.3.4. Taimer 91 2.3.5. Otsemällupöördus ja DMA-kontroller 96 2.4. Tarkvara 98 2.4.1. Ülevaade mikroarvutite ja juhtraalide tarkvarast 98 2.4.2. Assembler 99 2.4.3. Intel 8080 assemblerikeel 101 2.5. Signaaliprotsessorid 105 2.5.1. Signaaliprotsessorite ehituse iseärasused 105 2.5.2. Digitaal-analoogmuundurid 106 2.5.3. Analoog-digitaalmuundurid 107 2.5.4. Transpuutrid 111 2.6. Mikroprotsessorite kasutamine 114 2.6
-> operatsioon andmetega (string või vektorandmed) -> salvestamisele kuuluva tulemi aadressi arvutamine -> tulemi salvestus (mitu tulemit) -> katkestusnõuete kontroll -> katkestusnõude töötlus. 9. Translaatorite liigid. Kompilaator (on kõrgkeele translaator, st programm, mida rakendatakse kõrgtaseme algoritmikeeles koostatud programmi transleerimisel masinakeelde), interpretaator (on arvutiprogramm, mis käivitab programmikoodi, mis ei ole masinkoodi kompileeritud), assembler (arvutiprogramm mis tõlgib assambler keele objekti faili või masinkeele vormi). 10. Kompilaator ja selle üldistatud mudel. Kompilaator on kõrgkeele translaator, st programm, mida rakendatakse kõrgtaseme algoritmikeeles koostatud programmi transleerimisel masinakeelde. Kõrgkeelne (C, Fortran, jt) programm -> keelespetsiifiline eeltöötlus (sõltuvused: keelest/arvutist sõltumatu, Funktrioon: teisendab kõtgkeele konstruktisoonid
Tarkvara on tavaliselt kirjutatud kõrgetasemelises programmeerimiskeeles, mida on inimestel lihtsam ja tõhusam kasutada (sarnaneb rohkem loomuliku keelega) kui masinkeelt. Kõrgetasemelised keeled on koostatud või tõlgitakse masinkeele objektikoodi. Tarkvara võib olla kirjutatud ka assemblerkeeles, sisuliselt meeldejäävam variant masinkeelest, kasutades loomuliku keele tähestikku. Assemblerkeel tuleb koostada objektikoodi koostaja (assembler) abil. SIIT VIST ALGAB ÕIGE VASTUS SELLELE KÜSIMUSELE. LOE LÄBI JA EHK ON ABI! Tarkvara hõlmab suurt hulka tooteid, mis võivad olla toodetud erinevaid tehnikaid nagu tavalisi programmeerimiskeeli, mikrokoodi või FPGA konfiguratsiooni kasutades. Peaaegu kõikidel arvuti platvormidel saab tarkvara jagada paari suuremasse kategooriasse: Süsteemitarkvara on tarkvara, mis on kavandatud arvuti riistvara juhendamiseks, et
Eri protsessoritel on erinev sõna järgulisus. Aadress on kahend kood (number) mis näitab millise sõna poole toimub pöördumine. Mälus on taoline 0-de ja 1-de jada. Koodi enda järgi ei ole võimalik eristatda kus on andmed ja kus käsud. Protsessorist peab tulema aadress mis näitab millisesõna poole pöördutakse. Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta olema masinkoodis, et
Eri protsessoritel on erinev sõna järgulisus. Aadress on kahend kood (number) mis näitab millise sõna poole toimub pöördumine. Mälus on taoline 0-de ja 1-de jada. Koodi enda järgi ei ole võimalik eristatda kus on andmed ja kus käsud. Protsessorist peab tulema aadress mis näitab millisesõna poole pöördutakse. Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo mis vastab väärtusele 1 ja teine pingenivoo mis vastab väärtusele 0.Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta olema masinkoodis, et
MicroPro releases the WordStar word processor, written by Rob Barnaby. It is made available for Intel 8080A Zilog Z-80 based CP/M-80 systems. written by Seymour Rubenstein Microsoft announces Microsoft BASIC 8086 at the National Computer Conference.] July CompuServe begins a service to computer hobbyists called MicroNET, offering bulletin boards, databases, and games. Clive Sinclair creates Sinclair Research. August Microsoft releases its Assembler language for 8080/Z80 microprocessors. Wayne Ratliff develops the Vulcan database program (Ashton-Tate later markets it as dBase II). September Motorola's 68000 16-bit microprocessor appears. It uses 68,000 transistors, giving it its name. October 2.5 years after the introduction of the Apple II, 50,000 units have been sold. Personal Software releases VisiCalc for the Apple II, for US$100. Atari begins shipping the Atari 400 and Atari 800 personal computers
Eri protsessoritel on erinev sõna järgulisus. Aadress on kahend kood (number) mis näitab millise sõna poole toimub pöördumine. Mälus on taoline 0-de ja 1-de jada. Koodi enda järgi ei ole võimalik eristatda kus on andmed ja kus käsud. Protsessorist peab tulema aadress mis näitab millisesõna poole pöördutakse. Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel assembler masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda tehakse on tarkvaraprobleem, aga lõpuks peab ta
· Economy of execution kui kiiresti programm töötab? · Economy of Compilation kaua võtab aega koodist täidetava programmi saamine? · Economy of Small-Scale Development kui palju vaeva peab individuaalne programmeerija nägema? · Economy of Large-Scale Development kui palju vaeva peab programmeerijate meeskond nägema? · Economy of Language Features kui palju vaeva on vaja keele õppimiseks? 66. Assembler, selle eelised ja puudused RAS korral. 1. Masinkeel 2. Eelised Täidab protsessori instruktsioone Kõige kiirem Ei kompileerita sisuliselt Kõik süsteemi võimalused vahetult kättesaadavad 3. Puudused Sõltub protsessorist, `porditavat' koodi raske luua Silumine ja vigade leidmine vaevaline Ülevaadet programmist raske saada Raske õppida 4
Eri protsessoritel on erinev sõna järgulisus. Aadress on kahend kood (number) mis näitab millise sõna poole toimub pöördumine. Mälus on taoline 0-de ja 1-de jada. Koodi enda järgi ei ole võimalik eristatda kus on andmed ja kus käsud. Protsessorist peab tulema aadress mis näitab millisesõna poole pöördutakse. Lugemise korral peab juba protsessor teadma kas sõna interpreteerida käsuna või andmetena. Kõrgtaseme keel – assembler – masinkood: Kõrgtaseme keeles kirjutatud programmi (käskude) jada ei ole arvuti riistvara võimeline täitma. Riistvaras on olemas ainult pingenivoo, mis vastab väärtusele 1 ja teine pingenivoo, mis vastab väärtusele 0. Sellepärast teisendatakse programselt (transleeritakse) kõik programmid lõpuks masinkoodi. Masinkoodis vastab igale käsule oma kahendkood. Millised on transleerimise vahe etapid ja kuidas seda
nad võivad sisaldada kuitahes sügavaid alamliste. PUUD – Arvutiteaduses on puu laialt levinud abstraktne andmetüüp, mis simuleerib hierarhilist puustruktuuri põhiväärtuse ja alamväärtustega(’’vanem ja lapsed“), mis on ühendatud sõlmede kogumina. 6. nädal • Eksamiks: kompileerimine, interpreteerimine, parsimine, jit, vahekood, programmeerimiskeeled vs kirjelduskeeled, json, html, sql, keelte äratundmine (assembler, fortran, cobol, lisp, C, modula/pascal, python). Mis on data warehouse. Kompileerimine - tõlgib kõrgtaseme keelest masinkoodi (või mingisse nn. vahekoodi, näit. Java baitkoodi) - Kompilaator teeb neist assemblerikeelsed ajutised failid / võtab “source code”i ja tõlgendab selle masinale arusaadavaks koodiks. Masinkoodis programm nimega kompilaator teisendab keeles X programmi masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm Y.
Meetod on levinud käsustikes, mis ei ole eriti mahukad. Klassipõhiste käsukoodide korral koosneb käsukood kahest osast: 1. Klassikood 2. Operatsioonikood Meetod leiab rakendamist mahukates käsustikes, millele on iseloomulik väga variatiivsete käsuformaatide kasutamine. 8. Käsutsükli täitmise üldistatud mudel. 9. Translaatorite liigid. 1. Kompilaator 2. Interpretaator 3. Assembler Hübriidsüsteemides kompileeritakse lähtekeel vahevormi (vahekeelde), mida töödeldakse virtuaalmasinal ehk abstraktsel masinal. Virtuaalmasin sisaldab interpretaatorit. 10. Kompilaator ja selle üldistatud mudel. Tänapäeval koostatakse enamus programme kõrgkeeltes, mistõttu etendab nende töötlusel, mis kasutab kindlat ISA, olulist osa programmi transleerimisel kasutatud kompilaator.
Järjekord andmestruktuurina eeldab ainult FIFO printsiibi kasutamist. Käsusüsteem ja adresseerimine. · Käsuformaadid ja käsusüsteem (Instruction set) An instruction set, or instruction set architecture (ISA), describes the aspects of a computer architecture visible to a programmer, including the native datatypes, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O (if any). Kõrgtaseme keel Assembler keel masinkood Andmeedastus käsud Data transfer instructions MOV, LOAD, STORE, ... Aritmeetika-loogika käsud Arithmetic-logic instructions AND, OR, ADD, SUB, ... Hargnemiste (siirete) käsud Branch instructions JMP, CALL, RET, ... Pinumälu, sisend-väljund seadmete ja protsessori juhtimine Stack, I/O, Machine control instructions PUSH, POP, IN, OUT, NOP, ... · Adresseerimise viisid (Addressing modes)
uutes projektides on võimalik taas kasutusele võtta ning see vähendab töömahtu ja kiirendab uute programmide valmimist. PROGRAMMEERIMISKEELTE ÜLDINE JAOTUS Vaatleme programmeerimist pärast 1946. aastat, kui John von Neumann defineeris tänapäeva arvutite põhiprintsiibid. Esialgu oli arvutites programmeerimiseks ainult kahendkood. See tähendab seda, et kõik programmid tuli kirja panna 0-de ja 1-de jadana. Seejärel loodi assembler, mis kujutab endast lihtsat keelt asendamaks arvuti protsessori kahendkoodis kirjutatud käsud mnemoonikutega - lihtsate käske tähistavate tähekombinatsioonidega. Programmeerijate jaoks oli see suur samm edasi. 1950. aastatel loodi juba esimesed programmeerimiskeeled, mida tänapäevase mõiste järgi võib nimetada kõrgkeelteks ja need jagunesid mitmesse gruppi. Imperatiivsed ehk käskivad keeled Need on keeled, kus programmi põhiliseks elemendiks on käsk ehk instruktsioon
projektides on võimalik taas kasutusele võtta ning see vähendab töömahtu ja kiirendab uute programmide valmimist. Programmeerimiskeelte üldine jaotus Vaatleme programmeerimist pärast 1946. aastat, kui John von Neumann defineeris tänapäeva arvutite põhiprintsiibid. Esialgu oli arvutites programmeerimiseks ainult kahendkood. See tähendab seda, et kõik programmid tuli kirja panna 0-de ja 1-de jadana. Seejärel loodi assembler, mis kujutab endast lihtsat keelt asendamaks arvuti protsessori kahendkoodis kirjutatud käsud mnemoonikutega - lihtsate käske tähistavate 13 / 115 tähekombinatsioonidega. Programmeerijate jaoks oli see suur samm edasi. 1950. aastatel loodi juba esimesed programmeerimiskeeled, mida tänapäevase mõiste järgi võib nimetada kõrgkeelteks ja need jagunesid mitmesse gruppi. Imperatiivsed ehk käskivad keeled