Машинен език
от Уикипедия, свободната енциклопедия
Машинен код или машинен език е система от инструкции и информация, която може да бъде разбрана и изпълнена от процесора на компютъра.
Съдържание |
[редактиране] Инструкции в машинния код
"Думите" за машината. Инструкциите са последователности от битове с различни модели, отговарящи на команди към машината.
Всеки процесорен модел има свой собствен машинен код, или набор с инструкции, въпреки че има доста голямо застъпване между тях. Ако процесорът "А" разбира пълния език на процесора "Б", то казваме, че "А" е съвместим с "Б". "Б" може и да не е съвместим с "А", тъй като "А" може да използва някои команди, които "Б" не може.
Някои машинни езици отделят за всички свои команди един и същ брой битове, докато при други това не е така. Организацията на моделите зависи от спецификацията на машинния код. Широко използвано е отделянето на полето, което определя самата операция (например "прибавяне"). Други полета може да определят типа на операндите, тяхното местоположение или техните стойности директно (операндите, съдържащи се в команда, се наричат директни). Някои по-рядко използвани групи от команди нямат полета, определящи операцията (като "Transport Triggered Architectures" или "Forth virtual machine"), а само операнди.
[редактиране] Програми
Програмата е последователност от команди, които се изпълняват от процесора. Докато по-простите процесори изпълняват командите една след друга, процесорите с паралелни архитектури са способни да изпълнят няколко команди наведнъж.
На програмният поток може да се въздейства със специалните jump инструкции, които прехвърлят хода на програмата към инструкция, различна от следващата. В зависимост от някакво условие може да се предприеме някакво действие (изпълнението продължава на друг адрес) или да не се предприеме (изпълнението продължава със следващата команда).
[редактиране] Асемблерни езици
Асемблерните езици използват сложни команди, за да се позовават на машинните команди. Тази по-четлива интерпретация на машинния език се нарича асемблерен език и се състои от числа и прости думи, докато машинния код е съставен само от числа, обикновено представени в двоична или шестнайсетична бройна система. Например на процесора Zilog Z80 машинния код 00000101
казва на процесора да намали с единица процесорния регистър B
. На асемблерен език това би изглеждало така DEC B
.
[редактиране] Специални ли са машинните езици?
Машинният език е следствие от необходимостта от използване на прости елементи в електрическата схема на компютрите. Всъщност програмите, написани на машинен език, са сред най-трудните за четене и модифициране и, въпреки че познаването на машинните езици би позволило на способните програмисти да компенсират недостатъците на автоматичното генериране на код от компилаторите и интерпретаторите, то не би опростило работата им.
[редактиране] Източници
- Hennessy, John L.; Patterson, David A.. „Computer Organization and Design. The Hardware/Software Interface.“. Morgan Kaufmann Publishers. ISBN 1-55860-281-X.
- Tanenbaum, Andrew S.. „Structured Computer Organization“. Prentice Hall. ISBN 0-13-020435-8.