Razlika između verzija stranice "Mašinski jezik"

[nepregledana izmjena][nepregledana izmjena]
Uklonjeni sadržaj Dodani sadržaj
mNo edit summary
No edit summary
Red 1:
'''Mašinski jezik''' ili ''mašinski kod'' (binarni kod, mašinac) je sistem instrukcija i podataka koje centralni [[procesor]] u [[računar]]u neposredno izvršava. Mašinski jezik je u određenu ruku primitivan i nezgrapan [[programski jezik]]. On je takođe i najosnovnija reprezentacija, odnosno [[računarski program]]i [[kompajler|kompajlirani]] i/ili [[asembler|asemblirani]] na najnižem nivou - nivou mašine (od [[engleski jezik|eng.]] machine, ponekad neformalan izraz za uređaj, aparat, vozilo - u našem slučaju računar). Mašinski jezik se ponekad naziva '''nativni''' (eng. native code) kada se odnosi na specifičan hadrver, tj. kada su dijelovi koda ili izrazi ovisni o platformi.
 
Računari i njihov 'mozak' - procesori - rade na 'struju'. To su [[elektronika|elektronički sklopovi]] čiji je rad zasnovan na stanjima [[napon]]a; stanje s naponom i stanje (skoro) bez napona. Mašinski jezik, odnosno njegov binarni kod - sistem 1 i 0 - direktno korespondira sa naponskim stanjima u [[integralno kolo|integralnom kolu]].
 
==Instrukcije u mašinskom jeziku==
Line 5 ⟶ 7:
Instrukcije su šabloni [[bit]]ova, gdje svaki šablon odgovara određenoj komandi koja se zadaje mašini.
 
Svaki model centralnog procesora ima sopstveni mašinski jezik ili set instrukcija. Poboljšane verzije jednog procesora ili novi modeli zasnovani na prethodnim mogu koristiti sve instrukcije svog prethodnika kao i njima dodane instrukcije.
 
Ako procesor P1 u potpunosti razumije jezik procesora P2 kaže se da je su P1 i P2 kompatibilni. Na primjer, takozvani [[IBM]] kompatibilni računari su dobili tu odrednicu upravo zbog toga što razumiju mašinski jezik koji je kreirao IBM i zatim primijenio na većinu personalnih računara.
 
Ali, čak i manje razlike kod skoro potpuno kompatibilnih procesora mogu uzrokovati drugačije efekte kada im se zadaju iste instrukcije. Ponekad će novi model izmijeniti ili prekinuti instrukcije svog prethodnika a to sve čini migraciju mašinskog jezika između dva procesora težom. Pa i kada se radi istom modelu procesora, oni neće jednako raditi ni pod istim mašinskim jezikom ako su memorije u sistemima drugačije postavljene, ako se koristi drugačiji operativni sistem ili su periferne jedinice različite. Ovo je zbog toga što mašinski jezik u sebi nane sadrži informacije o konfiguraciji sistema.
 
Prostim jezikom rečeno, korisnici na ovaj problem najčešće ukazuju pitanjem: "Pa kako radi na kompjuteru kod komšije a kod mene ne?!"
Line 22 ⟶ 24:
 
==Asemblerski jezik==
 
Pisanje programa direktno u mašinskom jeziku bilo bi veoma naporan i dugotrajan posao. Programeri bi morali voditi računa o svakom bitu u datoj instrukciji. Takođe bi bilo i veoma teško snalaziti se u nepreglednim kolonama i redovima jedinica i nula.
 
 
 
•••
0010 0100 1011 0111<br>
1000 1110 1100 1011<br>
0101 1001 0010 0001<br>
0111 0010 0011 1101<br>
0001 0000 1001 0100<br>
1000 1001 1011 1110<br>
0001 0011 0101 1001<br>
0111 0010 0011 1101<br>
0001 0000 1001 0000<br>
1000 1001 1011 1111<br>
1001 1101 1001 1110<br>
0111 0010 0011 1101<br>
0001 0000 1001 0000<br>
0111 0010 0011 1101<br>
0001 0011 1001 1100<br>
•••
 
 
 
 
Mašinski jezik se često miješa sa [[Assembler|asemblerskim jezikom]]. Tačno, čovjeku mnogo jasniji prikaz mašinskog jezika je dat u asemblerskom jeziku ali asembler je programski jezik niskog nivoa koji mašinski jezik specifične procesorske arhitekture predstavlja u čitljivom obliku.