Машински језик — разлика између измена

Садржај обрисан Садржај додат
Autobot (разговор | доприноси)
м Разне исправке; козметичке измене
Ред 2:
'''Машински језик''' или '''машински код''' ('''бинарни код, машинац''') је систем инструкција и података које централни процесор у рачунару непосредно извршава.
 
Машински језик је у одређену руку примитиван програмски језик. Он је такође и најосновнија репрезентација, односно рачунарски програми компајлирани и/или асемблирани на најнижем нивоу — нивоу машине (од {{Јез-енгл|machine}}, понекад неформалан израз за уређај, апарат, возило — у нашем случају рачунар). Машински језик се понекад назива нативни ({{Јез-енгл|native code}}) када се односи на специфичан хардвер, тј. када су делови [[код|кода]]а или изрази зависни од платформeплатформе.
 
Рачунари и њихов [[мозак]] — [[процесор]]и — раде на [[Електрична струја|струју]]. То су електронски склопови чији је рад заснован на стањима напона; стање с напоном и стање (скоро) без напона. Машински језик, односно његов бинарни код — систем 1 и 0 — директно кореспондира са напонским стањима у [[интегрално коло|интегралном колу]].
Ред 11:
Сваки модел централног процесора има сопствени машински језик или скуп инструкција. Побољшане верзије једног процесора или нови модели засновани на претходним могу користити све инструкције свог претходника као и њима додане инструкције.
 
Ако процесор П1 у потпуности разуме језик процесора П2 каже се да су П1 и П2 компатибилни. На пример, такозвани [[ИБМ|ИБМIBM]] компатибилни рачунари су добили ту одредницу управо због тога што разумеју машински језик који је креирао ИБМIBM и затим применио на већину персоналних рачунара.
 
Али, чак и мање разлике код скоро потпуно компатибилних процесора могу узроковати другачије ефекте када им се задају исте инструкције. Понекад ће нови модел изменити или прекинути инструкције свог претходника а то све чини миграцију машинског језика између два процесора тежом. Па и када се ради истом моделу процесора, они неће једнако радити ни под истим машинским језиком ако су меморије у системима другачије постављене, ако се користи другачији оперативни систем или су периферне јединице различите. Ово је због тога што машински језик у себи не садржи информације о конфигурацији система.
Ред 21:
== Програми ==
 
Рачунарски програм је низ инструкција које извршава централни процесор. Једноставни процесори могу извршавати инструкције само једну за другом док су сложени процесори попут оних у [[супер-рачунар|супер-рачунарима]]има способни извршавати више инструкција истовремено, такозвано паралелно процесуирање.
 
Код извршавања програма инструкције се могу извршавати по редоследу једна за другом али и у 'скоковима', односно под одређеним условима извршавање по редоследу може бити прекинуто и настављено на некој другој адреси по задатом критеријуму.
Ред 29:
Писање програма директно у машинском језику било би веома напоран и дуготрајан посао. [[програмер|Програмери]] би морали водити рачуна о сваком биту у датој инструкцији. Такође би било и веома тешко сналазити се у непрегледним колонама и редовима јединица и нула.
 
Машински језик се често меша са [[асемблер|асемблерским]]ским језиком. Тачно, човеку много јаснији приказ машинског језика је дат у асемблерском језику али асемблер је програмски језик ниског нивоа који машински језик специфичне процесорске архитектуре представља у читљивом облику.
 
Програми написани у асемблеру се одликују могућношћу слања директних команди [[процесор|процесору]]у као и искориштавању целог дијапазона рачунарске архитектуре. Пошто ти програми раде практично на нивоу машинског кода, и са собом немају помоћне конструкције, генерализације кода и за машину сличне „небитне“ ствари, су много мањи и бржи од програма написаних у неком „конвенционалном“ [[Програмски језик|програмском језику]].
 
Неке од главних мана таквих програма су лоша читљивост, (посебно изражено при великим пројектима), те комплексност кода и практична немогућност конвертовања истог кода на другу процесорску [[архитектура|архитектуру]]. Због тих мана се асемблер данас користи само у системима реалног времена и осталим специфичним системима.