Masinkood

Allikas: Vikipeedia
Masinkoodimonitor

Masinkood ehk masinkeel ehk masinakeel on programmeerimiskeel, mis on arvuti protsessorile otseselt arusaadav. Masinkood ei ole inimestele kergesti loetav, kuid mõnel juhul on seda võimalik loetavaks teha dekompilaatori või disassembleri abil. Teistes programmeerimiskeeltes kirjutatud programmid kas tõlgitakse masinkoodi või käivitatakse masinkoodis kirjutatud interpretaatori abil, otse kirjutatakse masinkoodi erandjuhtudel.

Üldjuhul töötleb masinkoodi masin - näiteks mikroprotsessor kuid seda võidakse töödelda ka tarkvaraliselt mõnel teisel mitteühilduval protsessoril emulaatori abil. Spetsiaalselt masinkoodiinterpretaatori (baitkoodi virtuaalmasina) poolt töötlemiseks loodud "masinkoodi" nimetatakse baitkoodiks (vt. java baitkood).

Tehniline seletus[muuda | redigeeri lähteteksti]

Kuigi masinakood võib tunduda sarnasena assemblerkeelele, on need siiski erinevad keeled. Assemblerkeelne lähtekood koosneb protsessori masinakäskude mnemokoodidest ja kahendsüsteemi teisendatavatest operandidest aga masinakood koosneb ainult kahendarvudest.

Igal protsessori tüübil on oma masinakeel mis võib teiste tüüpidega osaliselt kattuda. Kui protsessor A mõistab täielikult protsessori B masinkoodi, öeldakse, et A ühildub ehk on kompatiibel (compatible) B-ga. Seejuures B ei pruugi ühilduda A-ga, A võib teada koode, mida B ei tea. Samuti võivad kaks protsessorit ühilduda kolmandaga, aga mitte omavahel. Protsessoriga ühilduv assembler on assembler, mis tõlgib assemblerkeeles programmi protsessori masinakeelde ehk masinakoodi.

Masinakoodi ehk masinakeele "sõnade" teiseks nimetuseks on masinakäsud ehk instruktsioonid. Assemblerkeelne või masinkoodis arvutiprogramm pole muud kui pikk nimekiri üksikutest masinakäskudest, mida protsessor täidab. Vanemad protsessorid täitsid masinakäske ainult jadamisi, kuid osa tänapäevaseid protsessoreid suudab täita ka mitut käsku samaaegselt, seega kiiremini. Programmi masinakoodi ei pruugi protsessor täita järjestikku, vaid võib käskude täitmisel hüpata vastavalt programmile ühest kohast teise vastavalt täidetavas programmis olevate siirdekäskudele (jump ehk goto, call, return) või vastavalt sündmustele (välisseadmetelt saadud katkestussignaalide järgi).

Protsessorite arhitektuurid ja masinakäsud[muuda | redigeeri lähteteksti]

Mõnes masinakeeles on kõik käsukoodid alati võrdse bittide arvuga, mõnes mitte. RISC-protsessorite arhitektuuris on käsukoodid alati ühe pikkusega, CISC-protsessoritel käsukoodide pikkus varieerub. Samas on tänapäeval enamus CISC-protsessoreid sisemiselt RISC-arhitektuuriga: kuigi programmid annavad neile CISC käske, transleeritakse need protsessoris RISC-käskudeks. Sellised on näiteks alates Pentium 2 seeria protsessorid. Väliselt on protsessorid CISC-tüüpi tagasiühilduvuse ehk kompatiibluse saavutamiseks vanemate protsessoritega.

  • 286
  • 386
  • 486
  • 586 – Inteli Pentium MMX,I. AMD K6
  • 686 – Inteli Pentium II,III,IV ja Celeron. AMD Athlon XP, Duron
  • x86-64 – x86 64-bitine edasiarendus. (Vahel kirjutatakse ka: x86_64)
  • AMD64 – AMD teostus x86-64 -st, ehk AMD haru
  • Intel 64 (EM64T) – Inteli teostus x86-64 -st, ehk Inteli haru.
  • Itanium - Inteli Itanium arhitektuur. See arhitektuur ei ole ühilduv x86 või x86-64 arhitektuuriga.
  • IA-64 (IA64)
  • PPC – Ehk PowerPC, algselt kasutati Apple Macintoshides ja IBM toodetud tööjaamades ja serverites. Hiljem Apple loobus selle protsessoriperekonna kasutamisest. See on protsessorite rühm ja käsustik, mis on leidnud kasutust ka digitaalvastuvõtjates (Dreambox), mängukonsoolides nagu Nintendo GameCube, Wii, WiiU, Xbox 360 (Microsoft), Cell kujul ka PlayStation 3-s (Sony), samuti on kasutatud seda mitmetel tehiskaaslastel. Apple jooksutas PowerPC peal OSX-i, IBM jooksutas AIX-i.
  • ARM – Pihuarvutites, nutitelefonides ja tahvelarvutites kasutatav protsessori tüüp.

Vaata ka:[muuda | redigeeri lähteteksti]