Masinkood
Allikas: Vikipeedia
Vajab toimetamist |
Masinkood e. 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.
Sisukord |
[redigeeri] Tehniline seletus
Kuigi masinkood võib tunduda sarnasena assemblerkeelele, on need siiski erinevad keeled. Assembleri lähtekood koosneb nii kahendkoodist kui lihtsatest protsessori käskudest, kuid masinkood koosneb ainult numbritest 0 ja 1. Igal protsessori tüübil on oma masinkeel, kuigi see sageli suuresti kattub. 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 koodi protsessori masinkoodi.
Masinkoodi "sõnade" teiseks nimetuseks on instruktsioonid; iga instruktsioon annab protsessorile mingi lihtsa käsu. Arvutiprogramm pole muud kui pikk nimekiri üksikutest instruktsioonidest, mida protsessor täidab. Vanemad protsessorid täitsid instruktsioone ainult jadamisi, kuid osa tänapäevaseid protsessoreid suudab täita ka mitut korraga, seega kiiremini. Programmi masinkoodi ei pruugi protsessor täita järjestikku, vaid võib käskude täitmisel hüpata ühest kohast teise käsu jump abil.
[redigeeri] Instruktsioonid
Instruktsioonid on lihtsalt bitijadad - erinevad bitijadad vastavad erinevatele masina käskudele. Masinkoodist ja bitijadadest loetavam keel on assemblerkeel, kus bitijadade asemel on inimesele loetavamad protsessori käsud.
Mõnes masinkoodis on kõik instuktsioonid alati võrdse bittide arvuga, mõnes mitte. RISC-protsessorite arhitektuuris on instruktsioon alati ühe pikkusega, CISC-protsessoritel pikkus varieerub. Samas on tänapäeval ka enamus CISC-protsessoreid sisemiselt RISC-arhitektuuriga: kuigi programmid annavad neile CISC käske, transleeritakse need protsessoris RISC-instruktsioonideks. Sellised on näiteks alates Pentium 2 seeria protsessorid. Väliselt on protsessorid CISC-tüüpi tagasiühilduvuse ehk kompatiibluse saavutamiseks vanemate protsessoritega.
[redigeeri] Arhitektuurid
- x86 - Inteli algatatud protsessorite arhidektuur, millest arenenud:
-
- 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 64bitine edasiarendus
- amd64 - AMD haru
- ia64 - Inteli haru
- ppc - Ehk PowerPC, Macintoshides kasutatav protsessor
- arm - Pihuarvutites kasutatav protsessori tüüp