Автор LeX задал вопрос в разделе Другие языки и технологии
Машинный код. и получил лучший ответ
Ответ от ?[гуру]
Процессор может механически исполнить инструкции в двоичном коде. Система кодов у разных производителей и в рамках различных поколений процессоров отличается. Это означает, что программа для одного компьютера в общем случае может и не запуститься на другом из-за наличия несуществующих или отсутствия необходимых команд. Двоичные коды Вы можете записать их компактно в шестнадцатеричной системе счисления например в виде CA 01 B3, такое представление двоичного кода сокращает запись, но не предоставляет программисту наглядности и читаемости, которую можно получить заменив код операции (машинный опкод) на слова-мнемоники. Так появляется ассемблер с инструкциями вроде MOV AX, BX, где широко используются символьные сокращения. Код ассемблера практически 1 в 1 соответствует машинному. Ясно, что если программа или какая-то функция написана один раз, желательно ее использовать повторно. Тут возникает идея языка высокого уровня, в котором 1 команда разворачивалась бы в десятки-сотни строк выверенного машинного кода. Исходный текст обрабатывается в общем случае несколькими программами - препроцессором, компилятором (в котором есть лексический и синтаксический анализаторы и др. подпрограммы) , затем код ассемблируется. Но машинный код еще не готов - надо связать модули (хранилища/заготовки проверенного кода) , организовать адресное пространство, подготовить заголовки загрузчика и т. п. Этим занимается линкер, который превращает объектные файлы и подключаемые библиотеки в окончательные машинные исполняемые коды (они бывают разных форматов pe/elf и др. зависит от операционной системы) . Кроссплатформенные языки вроде Java, PHP, Python и др. основаны на идее предварительной компиляции программы в опкоды виртуальной машины, разные версии исполняемого кода которой доступны на разных платформах (имеется ввиду семейство процессоров и операционная система: Intel/Win32, Arm/Android, AMD/Linux и т. п.)
Верно, это так
не совсем, когда программу пишут машинным кодом, то используют 16-ю сс, то есть там присутствуют тоже буквы
в вопросе был указан машинный код как низкоуровневый язык программирования, а единички и нули больше относятся к аппаратной части эвм
Ответ очень простой - Вы всё перепутали и конечно Ваши понятия об этом не лезут ни в какие ворота. Есть языки программирования низкого уровня и и высокого уровня которые Вы ( я и другие ) знают и понимают, но эти языки не понимают компьютеры. Они понимают только команды ( коды команд - Машинный язык ). Каждая выполняемая команда состоит из кода команды и одного или 2-х адресов ( всё это нули и единицы) . Трансляторы переводят с языков программирования на промежуточный язык ( но это ещё не Машинный язык. Он будет таким только после загрузки программы. и вот этот код понимает и может выполнить компьютер.
Маши?нный код (платфо?рменно-ориенти?рованный код), маши?нный язы?к — система команд (набор кодов операций) конкретной вычислительной машины, которая интерпретируется непосредственно процессором или микропрограммами этой вычислительной машины.
Компьютерная программа, записанная на машинном языке, состоит из машинных инструкций, каждая из которых представлена в машинном коде в виде т. н. опкода — двоичного кода отдельной операции из системы команд машины. Для удобства программирования вместо числовых опкодов, которые только и понимает процессор, обычно используют их условные буквенные мнемоники. Набор таких мнемоник, вместе с некоторыми дополнительными возможностями, называется языком ассемблера.
Как понять машинный код ?(Компилятор переводит исходный код компьютерной программы в машиный код).
> Как понять машинный код ?
Хм.... Ну, у каждой (почти) машины есть инструкция по
подробнее...
Программирование в машинных кодах.
Программировать в машинных кодах это действительно интересно, особенно когда есть возможность
подробнее...
Что означает этот параметр в машинном коде? DATA XREF: sub_994FD4+288o
Судя по всему Вы взяли дизассемблированный кусок кода. Н-р от IDA.
В контексте IDA это
подробнее...
что такое Код в программировании?
Текст программы. Обычно различают исходный код (на языке программирования) и исполняемый (машинный)
подробнее...
помощь. что такое виртуальная машина? многие просто говорят запусти её на виртуальной машине?
Виртуальная машина (ВМ, от англ. virtual machine) —
программная и/или аппаратная система,
подробнее...
Люди напишите пожалуйста подробно ! как узнать исходный код программ и игр ? Заранее благодарен .
исходный код программы - это уже скомпилированный исходный код! (можно посмотреть используя
подробнее...
В чем отличие байт кода от машинного?
Байт-кодом называется машинный код для виртуальной
подробнее...