Лекция
Привет, мой друг, тебе интересно узнать все про машинные языки, тогда с вдохновением прочти до конца. Для того чтобы лучше понимать что такое машинные языки, машинный язык, язык ассемблера, машинно-ориентированные языки, машинный код, байт код , настоятельно рекомендую прочитать все из категории Языки и методы программирования. Теория трансляции.
машинный язык - это совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнять машина и др. Каждый компьютер имеет свой машинный язык.
машинный код - последовательность чисел, которые представляются как совокупность двух цифр: 0 и 1.
При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций.
Но процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать. Применение машинных языков требует знания специфики представления и преобразования информации в ЭВМ.
Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры).
Машинный код (платформенно-ориентированный код), машинный язык — система команд (набор кодов операций) конкретной вычислительной машины, которая интерпретируется непосредственно процессором или микропрограммами этой вычислительной машины.
Компьютерная программа, записанная на машинном языке, состоит из машинных инструкций, каждая из которых представлена в машинном коде в виде т. н. опкода — двоичного кода отдельной операции из системы команд машины. Для удобства программирования вместо числовых опкодов, которые только и понимает процессор, обычно используют их условные буквенные мнемоники. Набор таких мнемоник, вместе с некоторыми дополнительными возможностями (например, некоторыми макрокомандами, директивами), называется языком ассемблера.
Каждая модель процессора имеет свой собственный набор команд, хотя во многих моделях эти наборы команд сильно перекрываются. Говорят, что процессор A совместим с процессором B, если процессор A полностью «понимает» машинный код процессора B. Если процессоры A и B имеют некоторое подмножество инструкций, по которым они взаимно совместимы, то говорят, что они одной «архитектуры» (имеют одинаковую архитектуру набора команд).
Машинный код обычно отличается от байт-кода (также известного как p-код), который либо выполняется интерпретатором, либо сам компилируется в машинный код для более быстрого (прямого) выполнения. Об этом говорит сайт https://intellect.icu . Исключение составляют случаи, когда процессор предназначен для использования определенного байт-кода непосредственно в качестве своего машинного кода, как в случае с процессорами Java .
Машинный код и ассемблерный код иногда называют собственным кодом, когда речь идет о платформенно-зависимых частях языковых функций или библиотек. [
Машинно-ориентированные языки (язык Ассемблер, автокоды, языки символического кодирования и др.), это система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде.
Несмотря на высокую трудоемкость, ими часто пользуются профессиональные системные программисты, например при разработке программ общего или специального ПО, особенно в тех случаях, когда эти программы должны быть максимально компактными и быстродействующими. Пользователям с недостаточной программистской подготовкой эти языки практически недоступны.
язык ассемблера позволяет программисту пользоваться текстовымимнемоническими (т.е. легко запоминаемыми человеком) кодами, по своему усмотрению присваивать символические имена регистрам компьютера и памяти, а также задавать удобные для себя способы адресации. Он позволяет использоватьразличные системы счисления(например, десятичную или шестнадцатеричную) для представления числовых констант, использовать в программе комментарии и др.
Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая называется ассемблером и является, по сути, простейшим транслятором.
Машинные и машинно-ориентированные языки – этоязыки низкогоуровня, требующие указания мелких деталей процесса обработки данных.
Их особенности.
Во-первых, машинная программа в конечном счете записывается с помощью лишь двух символов 0 и 1.
+Во-вторых, каждая ЭВМ имеет ограниченный набор машинных операций, ориентированных на структуру процессора, типа: переслать число в ячейку; считать число из ячейки; увеличить содержимое ячейки на +1 и т.п. Команда на машинном языке содержит очень ограниченный объем информации, поэтому она обычно определяет простейший обмен содержимого ячеек памяти, элементарные арифметические и логические операции.
Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением информации, задаваемой в адресах, набором операций, которые может выполнить машина и др.
При программировании на машинном языке программист может держать под своим контролем каждую команду и каждую ячейку памяти, использовать все возможности имеющихся машинных операций. При этом можно составить такую компактную, маленькую программу, код которой может быть исполнен в любом самом примитивном микроконтроллере, чипе. В этом ценность программирования в кодах машины.
Но процесс написания программы на машинном языке очень трудоемкий и утомительный. Программа получается громоздкой, труднообозримой, ее трудно отлаживать, изменять и развивать.
Поэтому в случае, когда нужно иметь эффективную программу, в максимальной степени учитывающую специфику конкретного компьютера, вместо машинных языков используют близкие к ним машинно-ориентированные языки (ассемблеры).
Программа «Hello, world!» для процессора архитектуры x86 (ОС MS DOS, вывод при помощи BIOS прерывания int 10h) выглядит следующим образом (в шестнадцатеричном представлении):
Я хотел бы услышать твое мнение про машинные языки Надеюсь, что теперь ты понял что такое машинные языки, машинный язык, язык ассемблера, машинно-ориентированные языки, машинный код, байт код и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Языки и методы программирования. Теория трансляции
Из статьи мы узнали кратко, но содержательно про машинные языки
Комментарии
Оставить комментарий
Языки и методы программирования. Теория трансляции
Термины: Языки и методы программирования. Теория трансляции