Машинний код: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Рядок 5:
Кожен процесор або сімейство процесорів має свій власний набір команд (інструкцій) машинного коду. Кожна машинна інструкція виконує певну дію, такими є операції з даними (наприклад, додавання чи копіювання [[Машинне слово|машинного слова]] в [[Регістр процесора|регістрі]] або в [[Комп'ютерна пам'ять|пам'яті]]) або [[Команди переходу|перехід до іншої частини коду]] (зміна порядку виконання; при цьому перехід може бути безумовним або умовним, залежним від результатів попередніх інструкцій). Будь-яка [[Виконуваний файл|виконувана]] програма складається з послідовності таких атомарних машинних операцій.
 
== Мови асемблера та псевдокод==
{{main|Мова асемблера}}
Машинний код можна розглядати як примітивну [[Мова програмування|мову програмування]] або як найнижчий рівень представлення [[Компілятор|скомпільованих]] або [[Асемблер|ассембльованих]] комп'ютерних програм. Хоча цілком можливо створювати програми прямо в машинному коді, зараз цього практично ніхто не робить. Якщо потрібно написати оптимізовану програму під певний мікропроцесор то використовують переважно різні види мови [[Асемблер]]а. Також, якщо під рукою немає початкового коду програми на високій мові програмування, а необхідно внести певні зміни в код, зламати код і т.п. використовують [[дизасемблер]]и, програми, що перетворюють машинний код у асемблерний, який більш зрозумілий кваліфікованим спеціалістам. За допомогою дизасемблери можна змінювати машинний код таким чином що непотрібна повна перекомпіляція програм. Написання коду на машинному коді і наближених до нього асемблерних мовах доволі трудомістка задача, потребує хорошого знання будови мікропроцесора та апаратних засобів. Тому переважна більшість програм пишеться мовами більш високого рівня і транслюється в машинний код [[компілятор]]ами.
 
Програми на [[Інтерпретована мова програмування|інтерпретованих мовах]] (таких як [[Бейсик]] або [[Python]]) не транслюються в машинний код; замість цього вони або виконуються безпосередньо [[інтерпретатор]]ом мови, або транслюються у псевдокод ([[байт-код]]), який згодом виконується інтерпретатори. Самі інтерпретатори - це програми представлені в машинному коді. Загалом виконання псевдокоду не значно повільніше за виконання машинного коду і значно швидше за виконанням інтерпретатором звичайного коду зрозумілого людині. Програми на Java зазвичай передаються на цільову машину у вигляді байт-кода, який перед виконання транслюється в машинний код «на льоту» — за допомогою [[JIT-компіляція|JIT-компіляції]].
 
== Мікрокод ==