Маши́нний код, маши́нна мова в інформатиці — набір команд (інструкцій), які виконуються безпосередньо центральним процесором комп'ютера без транслятора.
Кожен тип центрального процесора має власний машинний код. Оскільки машинний код складається повністю з двійкових чисел (бітів), більшість програмістів пишуть програми на мовах програмування високого рівня. Програми, написані такими мовами, мають транслюватися в машинний код, що здійснює компілятор або інтерпретатор програм, ще до того, як комп'ютер починає їх виконувати. В той час як прості процесори виконують інструкції одна за одною (SISD за таксономією Флінна), суперскалярні процесори здатні виконувати декілька інструкцій одночасно.
Інструкції машинного коду
Кожен процесор або сімейство процесорів має свій власний набір команд (інструкцій) машинного коду. Кожна машинна інструкція виконує певну дію; такими є операції з даними (наприклад, додавання чи копіювання машинного слова в регістрі або в пам'яті) або перехід до іншої частини коду (зміна порядку виконання; при цьому перехід може бути безумовним або умовним, залежним від результатів попередніх інструкцій). Будь-яка виконувана програма складається з послідовності таких атомарних машинних операцій.
Мови асемблера та псевдокод
Машинний код можна розглядати як примітивну мову програмування або як найнижчий рівень представлення скомпільованих або асембльованих комп'ютерних програм. Хоча цілком можливо створювати програми прямо в машинному коді, зараз цього практично ніхто не робить. Якщо ж потрібно написати оптимізовану програму під певний мікропроцесор, то використовують переважно різні види мови асемблера. Також, якщо під рукою немає початкового коду програми високою мовою програмування, а необхідно внести певні зміни в код, зламати код і т.п. використовують дизасемблери, програми, що перетворюють машинний код в асемблерний, який більш зрозумілий кваліфікованим спеціалістам. За допомогою дизасемблери в деяких випадках можна змінювати машинний код таким чином що непотрібна повна перекомпіляція програм. Написання коду на машинному коді й наближених до нього асемблерних мовах доволі трудомістка задача, потребує хорошого знання будови мікропроцесора та апаратних засобів. Тому переважна більшість програм пишеться мовами вищого рівня і транслюється в машинний код компіляторами. Існують також спеціальні декомпілятори, які дозволяють перетворити машинний код в код мовою високого рівня.
Програми на інтерпретованих мовах (таких як BASIC або Python) не транслюються в машинний код; замість цього вони або виконуються безпосередньо інтерпретатором мови, або транслюються у псевдокод (байт-код), який згодом виконується інтерпретатором. Самі інтерпретатори — це програми, представлені в машинному коді. Загалом виконання псевдокоду не значно повільніше за виконання машинного коду і значно швидше за виконанням інтерпретатором звичайного коду зрозумілого людині. Програми на Java зазвичай передаються на цільову машину у вигляді байт-коду, який перед виконання транслюється в машинний код «на льоту» — за допомогою JIT-компіляції.
Мікрокод
В деяких комп'ютерних архітектурах підтримка машинного коду реалізується ще більш низькорівневими програмами, що називаються мікропрограмами. Це дозволяє забезпечити єдиний інтерфейс машинного коду у всієї лінійки або сімейства комп'ютерів, які можуть мати значні структурні відмінності між собою, і полегшує перенесення програм в машинному коді між різними моделями комп'ютерів. Прикладом такого підходу є сімейство комп'ютерів (IBM System/360) та їх наступників: попри різні шини шириною від 8 до 64 біт і вище, вони мають загальну архітектуру на рівні машинного коду (за винятком [en], що був 16-розрядним).
Див. також
Література
- Nisan, Noam; Schocken, Shimon; Schocken, Simon. 4 Machine Language. The elements of computing systems: building a modern computer from first principles (вид. 1st MIT Press paperback). Cambridge, Mass. London: MIT. ISBN .
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Mashi nnij kod mashi nna mova v informatici nabir komand instrukcij yaki vikonuyutsya bezposeredno centralnim procesorom komp yutera bez translyatora Kozhen tip centralnogo procesora maye vlasnij mashinnij kod Oskilki mashinnij kod skladayetsya povnistyu z dvijkovih chisel bitiv bilshist programistiv pishut programi na movah programuvannya visokogo rivnya Programi napisani takimi movami mayut translyuvatisya v mashinnij kod sho zdijsnyuye kompilyator abo interpretator program she do togo yak komp yuter pochinaye yih vikonuvati V toj chas yak prosti procesori vikonuyut instrukciyi odna za odnoyu SISD za taksonomiyeyu Flinna superskalyarni procesori zdatni vikonuvati dekilka instrukcij odnochasno Instrukciyi mashinnogo koduDokladnishe Arhitektura sistemi komand Kozhen procesor abo simejstvo procesoriv maye svij vlasnij nabir komand instrukcij mashinnogo kodu Kozhna mashinna instrukciya vikonuye pevnu diyu takimi ye operaciyi z danimi napriklad dodavannya chi kopiyuvannya mashinnogo slova v registri abo v pam yati abo perehid do inshoyi chastini kodu zmina poryadku vikonannya pri comu perehid mozhe buti bezumovnim abo umovnim zalezhnim vid rezultativ poperednih instrukcij Bud yaka vikonuvana programa skladayetsya z poslidovnosti takih atomarnih mashinnih operacij Movi asemblera ta psevdokodDokladnishe Mova asemblera Mashinnij kod mozhna rozglyadati yak primitivnu movu programuvannya abo yak najnizhchij riven predstavlennya skompilovanih abo asemblovanih komp yuternih program Hocha cilkom mozhlivo stvoryuvati programi pryamo v mashinnomu kodi zaraz cogo praktichno nihto ne robit Yaksho zh potribno napisati optimizovanu programu pid pevnij mikroprocesor to vikoristovuyut perevazhno rizni vidi movi asemblera Takozh yaksho pid rukoyu nemaye pochatkovogo kodu programi visokoyu movoyu programuvannya a neobhidno vnesti pevni zmini v kod zlamati kod i t p vikoristovuyut dizasembleri programi sho peretvoryuyut mashinnij kod v asemblernij yakij bilsh zrozumilij kvalifikovanim specialistam Za dopomogoyu dizasembleri v deyakih vipadkah mozhna zminyuvati mashinnij kod takim chinom sho nepotribna povna perekompilyaciya program Napisannya kodu na mashinnomu kodi j nablizhenih do nogo asemblernih movah dovoli trudomistka zadacha potrebuye horoshogo znannya budovi mikroprocesora ta aparatnih zasobiv Tomu perevazhna bilshist program pishetsya movami vishogo rivnya i translyuyetsya v mashinnij kod kompilyatorami Isnuyut takozh specialni dekompilyatori yaki dozvolyayut peretvoriti mashinnij kod v kod movoyu visokogo rivnya Programi na interpretovanih movah takih yak BASIC abo Python ne translyuyutsya v mashinnij kod zamist cogo voni abo vikonuyutsya bezposeredno interpretatorom movi abo translyuyutsya u psevdokod bajt kod yakij zgodom vikonuyetsya interpretatorom Sami interpretatori ce programi predstavleni v mashinnomu kodi Zagalom vikonannya psevdokodu ne znachno povilnishe za vikonannya mashinnogo kodu i znachno shvidshe za vikonannyam interpretatorom zvichajnogo kodu zrozumilogo lyudini Programi na Java zazvichaj peredayutsya na cilovu mashinu u viglyadi bajt kodu yakij pered vikonannya translyuyetsya v mashinnij kod na lotu za dopomogoyu JIT kompilyaciyi MikrokodDokladnishe Mikrokod V deyakih komp yuternih arhitekturah pidtrimka mashinnogo kodu realizuyetsya she bilsh nizkorivnevimi programami sho nazivayutsya mikroprogramami Ce dozvolyaye zabezpechiti yedinij interfejs mashinnogo kodu u vsiyeyi linijki abo simejstva komp yuteriv yaki mozhut mati znachni strukturni vidminnosti mizh soboyu i polegshuye perenesennya program v mashinnomu kodi mizh riznimi modelyami komp yuteriv Prikladom takogo pidhodu ye simejstvo komp yuteriv IBM System 360 ta yih nastupnikiv popri rizni shini shirinoyu vid 8 do 64 bit i vishe voni mayut zagalnu arhitekturu na rivni mashinnogo kodu za vinyatkom en sho buv 16 rozryadnim Div takozhArhitektura sistemi komand Mova asemblera MikrokodLiteraturaNisan Noam Schocken Shimon Schocken Simon 4 Machine Language The elements of computing systems building a modern computer from first principles vid 1st MIT Press paperback Cambridge Mass London MIT ISBN 026214087X Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi