Strojna koda

Strojna koda je računalniški program, napisan v strojnem jeziku. Uporablja nabor ukazov določene računalniške arhitekture. Običajno je zapisana v binarni obliki. Strojna koda je najnižja raven programske opreme. Drugi programski jeziki so prevedeni v strojno kodo, da jih računalnik lahko izvaja.

Navodilo pove procesu, katero operacijo naj izvede. Vsako navodilo je sestavljeno iz opcode (koda operacije) in operandov. Operandi so običajno pomnilniški naslovi ali podatki. Nabor navodil je seznam opcijskih kod, ki so na voljo v računalniku. Strojna koda je tisto, v kar se sestavljena koda in drugi programski jeziki predelajo ali interpretirajo.

Ustvarjalci programov spreminjajo kodo v drug jezik ali strojno kodo. Strojna koda se včasih imenuje izvirna koda. To se uporablja, ko govorimo o stvareh, ki delujejo le na nekaterih računalnikih.

Pisanje strojne kode

Strojna koda je lahko zapisana v različnih oblikah:

  • Uporaba več stikal. Tako se ustvari zaporedje 1 in 0. To se je uporabljalo v zgodnjih časih računalništva. Od sedemdesetih let prejšnjega stoletja se ne uporablja več.
  • Uporaba urejevalnikašestnajstiških zapisov. To omogoča uporabo opkod namesto številke ukaza.
  • Uporaba Assemblerja. Jeziki za sestavljanje so preprostejši od opkod. Njihovo sintakso je lažje razumeti kot strojni jezik, vendar težje kot pri jezikih visoke ravni. Assembler sam prevede izvorno kodo v strojno kodo.
  • Z uporabo programskega jezikavisoke ravni lahko programi uporabljajo kodo, ki jo je lažje brati in pisati. Ti programi so prevedeni v strojno kodo. Prevajanje lahko poteka v več korakih. Programi v Javi so najprej optimizirani v bitno kodo. Nato se ob uporabi prevedejo v strojni jezik.
Sprednja plošča zgodnjega mini računalnika s stikali za vnos strojne kodeZoom
Sprednja plošča zgodnjega mini računalnika s stikali za vnos strojne kode

Tipična navodila strojne kode

V naboru ukazov je običajno veliko vrst ukazov:

  • Aritmetične operacije: seštevanje, odštevanje, množenje, deljenje.
  • Logične operacije: Konjunkcija, disjunkcija, negacija.
  • Operacije, ki delujejo na posamezne bite: premikanje bitov v levo ali desno.
  • Operacije, ki delujejo na pomnilnik: kopiranje vrednosti iz enega registra v drugega.
  • Operacije za primerjavo dveh vrednosti: večja od, manjša od, enaka.
  • Operacije, ki združujejo druge operacije: seštevanje, primerjava in kopiranje, če je vrednost enaka neki vrednosti (kot ena operacija), skok na neko točko v programu, če je register enak nič.
  • Operacije, ki delujejo na tok programa: skok na nek naslov.
  • operacije, ki pretvarjajo podatkovne vrste: npr. pretvorba 32-bitnega celega števila v 64-bitno celo število, pretvorba vrednosti s plavajočo vejico v celo število (s krajšanjem).

Številni sodobni procesorji za nekatere ukaze uporabljajo mikrokodo. Za bolj zapletene ukaze se običajno uporablja. To se pogosto uporablja pri arhitekturah CISC.

Navodila

Vsak procesor ali družina procesorjev ima svoj nabor ukazov. Navodila so vzorci bitov, ki ustrezajo različnim ukazom, ki jih je mogoče dati stroju. Tako je nabor ukazov specifičen za razred procesorjev, ki uporabljajo (večinoma) enako arhitekturo.

Novejše zasnove procesorjev pogosto vključujejo vsa navodila predhodnika in lahko dodajo dodatna navodila. Včasih novejša zasnova ukine ali spremeni pomen kode navodil (običajno zato, ker so potrebna za nove namene), kar vpliva na združljivost kode; celo skoraj popolnoma združljivi procesorji se lahko pri nekaterih navodilih obnašajo nekoliko drugače, vendar to le redko predstavlja težavo.

Sistemi se lahko razlikujejo tudi v drugih podrobnostih, kot so razporeditev pomnilnika, operacijski sistemi ali periferne naprave. Ker se program običajno zanaša na te dejavnike, različni sistemi običajno ne bodo izvajali iste strojne kode, tudi če se uporablja enaka vrsta procesorja.

Večina ukazov ima eno ali več polj opcode. Ta določajo osnovno vrsto navodila. Druga polja lahko določajo vrsto operandov, način naslavljanja itd. Obstajajo lahko tudi posebna navodila, ki jih vsebuje sama opkoda. Ta navodila se imenujejo neposredna navodila.

Zasnove procesorjev se lahko razlikujejo tudi na druge načine. Različna navodila so lahko različno dolga. Lahko pa so tudi enako dolga. Če imajo vsa navodila enako dolžino, lahko poenostavite zasnovo.

Primer

Arhitektura MIPS ima 32 bitov dolga navodila. V tem razdelku so primeri kode. Splošna vrsta navodil je v polju op (operacija). To je najvišjih 6 bitov. Navodila tipa J (skok) in tipa I (takojšen) so v celoti podana z op. Navodila tipa R (register) vključujejo polje funct. To določa natančno delovanje kode. Polja, ki se uporabljajo v teh tipih, so:

      6 5 5 5 5 5 6 bitov [ op | rs | rt | rd |shamt| funct] vrsta R [ op | rs | rt | address/immediate] vrsta I [ op | target address ] vrsta J

rs, rt in rd označujejo registrske operande. shamt podaja količino premika. Polji address ali immediate neposredno vsebujeta operand.

Primer: dodajte registra 1 in 2. Rezultat postavite v register 6. Kodiran je:

[ op | rs | rt | rd |shamt| funct] 0 1 2 6 0 32 decimalno 000000 00001 00010 00110 00000 100000 binarno

Naloži vrednost v register 8. Vzemite jo iz pomnilniške celice, ki je 68 celic za mestom, navedenim v registru 3:

[ op | rs | rt | address/immediate] 35 3 8 68 decimalno 100011 00011 01000 00000 00001 000100 binarno

Skočite na naslov 1024:

[ op | ciljni naslov ] 2 1024 decimalno 000010 00000 00000 00000 00000 10000 000000 binarno

Sorodne strani

  • Binarni številski sistem
  • Kvantni računalniki
  • Nabor ukazov
  • Računalnik z zmanjšanim naborom ukazov

Vprašanja in odgovori

V: Kaj je strojna koda?


O: Strojna koda je računalniški program, napisan v strojnem jeziku, ki uporablja nabor ukazov določene računalniške arhitekture in je običajno zapisan v binarni obliki.

V: Kaj je najnižja raven programske opreme?


O: Strojna koda je najnižja raven programske opreme.

V: Kako računalniki izvajajo druge programske jezike?


O: Drugi programski jeziki so prevedeni v strojno kodo, ki jo računalnik lahko izvede.

V: Iz česa je sestavljen ukaz v strojni kodi?


O: Navodilo v strojni kodi je sestavljeno iz opkode (koda operacije) in operanda(-ov). Operandi so običajno pomnilniški naslovi ali podatki.

V: Kaj je nabor navodil?


O: Nabor ukazov je seznam opkod, ki so na voljo za računalnik.

V: Kaj sestavljavci programov počnejo s kodo?


O: Sestavljavci programov spremenijo kodo v drug jezik ali strojno kodo.

V: Kako je drugo ime za strojno kodo?


O: Strojna koda se včasih imenuje tudi domača koda in se uporablja, kadar govorimo o stvareh, ki delujejo le na nekaterih računalnikih.

AlegsaOnline.com - 2020 / 2023 - License CC3