Машинен език

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

Машинен код или машинен език е система от инструкции и информация, която може да бъде разбрана и изпълнена от процесора на компютъра.

Инструкции в машинния код[редактиране | edit source]

"Думите" за машината. Инструкциите са последователности от битове с различни модели, отговарящи на команди към машината.

Всеки процесорен модел има свой собствен машинен код, или набор с инструкции, въпреки че има доста голямо застъпване между тях. Ако процесорът "А" разбира пълния език на процесора "Б", то казваме, че "А" е съвместим с "Б". "Б" може и да не е съвместим с "А", тъй като "А" може да използва някои команди, които "Б" не може.

Някои машинни езици отделят за всички свои команди един и същ брой битове, докато при други това не е така. Организацията на моделите зависи от спецификацията на машинния код. Широко използвано е отделянето на полето, което определя самата операция (например "прибавяне"). Други полета може да определят типа на операндите, тяхното местоположение или техните стойности директно (операндите, съдържащи се в команда, се наричат директни).

Някои по-рядко използвани групи от команди нямат полета, определящи операцията (като "Transport Triggered Architectures" или "Forth virtual machine"), а само операнди.

Програми[редактиране | edit source]

Програмата е последователност от команди, които се изпълняват от процесора. Докато по-простите процесори изпълняват командите една след друга, процесорите с паралелни архитектури са способни да изпълнят няколко команди наведнъж.

На програмният поток може да се въздейства със специалните jump инструкции, които прехвърлят хода на програмата към инструкция, различна от следващата. В зависимост от някакво условие може да се предприеме някакво действие (изпълнението продължава на друг адрес) или да не се предприеме (изпълнението продължава със следващата команда).

Асемблерни езици[редактиране | edit source]

Асемблерните езици използват сложни команди, за да се позовават на машинните команди. Тази по-четлива интерпретация на машинния език се нарича асемблерен език и се състои от числа и прости думи, докато машинният код е съставен само от числа, обикновено представени в двоична или шестнадесетична бройна система.

Например на процесора Zilog Z80 машинния код 00000101 казва на процесора да намали с единица процесорния регистър B. На асемблерен език това би изглеждало така DEC B.

Специални ли са машинните езици?[редактиране | edit source]

Машинният език е следствие от необходимостта от използване на прости елементи в електрическата схема на компютрите. Всъщност програмите, написани на машинен език, са сред най-трудните за четене и модифициране и, въпреки че познаването на машинните езици би позволило на способните програмисти да компенсират недостатъците на автоматичното генериране на код от компилаторите и интерпретаторите, то не би опростило работата им.

Източници[редактиране | edit source]