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