Машинният език е език от ниско ниво, съставен от двоични числа или битове, които компютърът може да разбере. Той е известен също като машинен код или обектен код и е изключително труден за разбиране. Единственият език, който компютърът разбира, е машинният. Всички програми и езици за програмиране, като Swift и C++, произвеждат или изпълняват програми на машинен език, преди да бъдат стартирани на компютър. Когато се изпълнява конкретна задача, дори и най-малкият процес, машинният език се транспортира до системния процесор. Компютрите могат да разбират само двоични данни, тъй като са цифрови устройства.
В компютъра всички данни като видеоклипове, програми, снимки са представени в двоичен формат. Централният процесор обработва този машинен код или двоични данни като вход. След това приложение или операционна система получава резултата от процесора и го показва визуално. Например ASCII кодът 01000001 представлява буквата „А“ на машинния език, но въпреки това се показва на екрана като „А“.
Различен машинен код се използва от различни процесорни архитектури; машинният код обаче включва 1s и 0s. За случай, в сравнение с процесора Intel x86, който съдържа CISC архитектура, PowerPC процесорът се нуждае от различен код, който съдържа RISC архитектура. За правилната процесорна архитектура, за да изпълни правилно една програма, компилаторът трябва да компилира изходния код на високо ниво.
За програма или действие точният машинен език може да бъде различен от операционната система, която описва как компилаторът записва действие на машинен език. По същия начин една снимка има над десетки хиляди двоични данни, които определят цвета на всеки пиксел.
Компютърните програми се създават на един или повече езици за програмиране (например Java, C++ или Visual Basic). Програмният код трябва да бъде компилиран, чрез който компютърът да може да го разбере, тъй като езиците за програмиране, използвани за създаване на компютърни програми, не могат да бъдат разбрани директно от компютъра. Когато кодът на програмата се компилира, той се преобразува в
01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100
машинен език, така че компютърът да може да го разбере.
Примери за машинен език
Текстът ' Здравей свят ' ще бъде написано на машинния език:
По-долу е даден друг пример за машинен език, който ще покаже буквата „А“ 1000 пъти на екрана.
169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96
Изпълнение на машинен код
Всяко семейство процесори следва набор от инструкции, които са специално програмирани и тези инструкции са изложени от машинен код. Всички второстепенни функционални компоненти, компонентите, които съставляват цялостното функциониране на машината, се определят от конкретно разположение на основните единици. Всички фундаментални информационни единици са представени в двоичен формат, който има една или две стойности „1“ или „0“. Тъй като всеки процесорен клас изисква структурна конфигурация, която отговаря на неговия уникален набор от инструкции, всички фундаментални набори от инструкции на конфигурациите на машинния код са свързани с подобни съвпадащи класове процесори.
Използване на машинен език
Често срещаните употреби на машинния език са разгледани по-долу:
- Машинният език е език от ниско ниво, който машините разбират, но който хората могат да дешифрират с помощта на асемблер.
- Компилаторът играе важна роля между хората и компютрите, тъй като преобразува машинния език в друг код или език, който е разбираем за хората.
- Асемблерният език е посветен на разбирането на машинния език, тъй като е негова копия.
Разлика между машинния език и асемблерния език
Има различни разлики между машинния език и асемблерния език. По-долу е дадена таблица, която съдържа всички разлики между тях.
Машинен език | Асемблен език |
---|---|
Машинният език е език за програмиране на ниско ниво, съставен от двоични числа или битове, които могат да се четат само от машини. Известен е също като машинен код или обектен код, в който инструкциите се изпълняват директно от процесора. | Асемблерният език е език само за хора, който не се разбира от компютрите. В резултат на това той действа като връзка между езиците за програмиране на високо ниво и машинните езици, изисквайки използването на асемблер за преобразуване на инструкции в машинен или обектен код. |
Машинният език включва двоични цифри (0 и 1), шестнадесетични и осмични десетични числа, които могат да бъдат разбрани само от компютри и не могат да бъдат дешифрирани от хора. | Мнемоники като Mov, Add, Sub, End и други съставляват асемблерния език, който хората могат да разберат, използват и прилагат. |
В машинния език коригирането на грешки и модификациите не могат да бъдат направени и характеристиките на машинните езици се променят съответно. | Асемблерният език има конвенционални набори от инструкции, както и възможност за коригиране на грешки и модифициране на програми. |
Машинните езици са зависими от платформата и са много трудни за разбиране от хората. | Синтаксисът на асемблерните езици е подобен на английския език; следователно е лесно за разбиране от човек. |
Машинният език не е възможно да се научи, тъй като е труден за запомняне и служи само като машинен код. | Асемблерният език е лесен за запомняне и се използва за базирани на микропроцесори приложения/устройства и системи в реално време. |
В машинния език всички данни присъстват в двоичен формат, което ги прави бързи при изпълнение. | В сравнение с машинния език, скоростта на изпълнение на асемблерния език е бавна. |
Последователностите от битове се използват от машинния език за даване на команди. Нулата представлява изключено или фалшиво състояние, докато единица представлява включено или истинско състояние. Преобразуването на програмен език от високо ниво в машинен език зависи от процесора. | Вместо да използва необработени последователности от битове, асемблерният език използва „мнемонични“ имена и символи; следователно потребителите не трябва да запомнят операционните кодове с асемблерния език. В асемблерните езици хората могат да преобразуват кода в машинен код и кодовете са малко по-четими |
Езиците за програмиране от първо поколение са машинни езици, които не се нуждаят от транслатор. | Второто поколение езици за програмиране са асемблерни езици, които използват асемблер като транслатор за преобразуване на мнемоники в машинно разбираема форма. |
Машинният език зависи от хардуера и не позволява модификация. | Асемблерният език не е преносим и зависи от машината и може лесно да се променя. |
В синтаксиса на машинния език има повече шансове за грешки. | В сравнение с машинния език, има по-малко шансове за синтактични грешки в асемблерния език. |