Masinakeel: erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
Resümee puudub
5. rida:
==Tehniline seletus==
 
Kuigi masinakood võib tunduda sarnasena [[assemblerikeelassemblerkeel]]ele, on need siiski erinevad keeled. [[Assembler]]i [[lähtekood]] koosneb nii [[kahendkood]]ist kui ka protsessori käskude mnemokoodidest, kuid masinakood koosneb ainult numbritest 0 ja 1. Igal protsessori tüübil on oma masinakeel, 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 assemblerikeelesassemblerkeeles programmi protsessori masinakeelde ehk masinakoodi.
 
Masinakoodi ehk masinakeele "sõnade" teiseks nimetuseks on masinakäsud ehk ''instruktsioonid''. AssemblerikeelneAssemblerkeelne 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äsk]]udele (''jump'' ehk ''goto'', ''call'', ''return'') või vastavalt sündmustele (välisseadmetelt saadud [[katkestussignaal]]ide järgi).
 
==Masinakäsud ehk instruktsioonid==
 
Masinakäsud on lihtsalt kahendkoodis arvud ([[bitt|bitijadad]]) - erinevad arvud vastavad erinevatele masinakäskudele. Masinakoodist ja bitijadadest loetavam keel on assemblerikeelassemblerkeel, kus bitijadade asemel on inimesele loetavamad protsessori käskudele vastavad mnemokoodid.
 
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.