Машинный код — язык набора инструкций процессора

Машинный код — язык набора инструкций процессора

Машинный язык, машинный код — набор инструкций процессора , в котором запись программы выражается в виде двоичных чисел, составляющих порядки и их аргументы .

Это был единственный язык программирования компьютеров нулевого поколения , за исключением компьютера Z4 , распространенный в начальный период разработки компьютеров первого поколения.

Машинный код может быть сгенерирован в процессе компиляции (для языков высокого уровня ) или сборки (для языков низкого уровня ). В процессе генерации машинного кода переносимый промежуточный код часто создается и сохраняется в объектном файле . Затем этот код, загруженный из объектного файла, подвергается консолидации (связыванию) с кодом в других файлах для создания окончательной формы машинного кода, которая будет сохранена в исполняемом файле .

Машинный язык не подлежит передаче, поскольку каждая архитектура процессора имеет свою собственную программную модель , т.е. список машинных заказов .

Машинный код — описание и понятие

Машинный код — это форма компьютерной программы (называемая исполняемой или двоичной ), предназначенная для непосредственного или почти прямого исполнения процессором . Он адаптирован к конкретному типу процессора и выражается в форме кодов команд и их аргументов, которые он понимает. Это сложный характер для непосредственного человеческого анализа, поэтому для облегчения задачи используются мониторы машинного кода или дизассемблеры.

В системах DOS / Windows машинный код содержит программы, размещенные в файлах com и exe . Размер com- файлов может достигать 64 КБ, поэтому все ссылки в программе близки, поэтому проблем с удаленными ссылками не возникает. Exe-файлы также содержат дополнительную информацию, например адреса для перехода в другое место, которые устанавливаются при загрузке программы в память компьютера (в режиме 16-разрядного процессора), а также информацию, необходимую для подключения программы к динамическим библиотекам ( DLL ).

В режиме 32- и 64-разрядных процессоров каждый запущенный процесс (программа) имеет свое собственное виртуальное адресное пространство, которое изолирует его от других программ и делает его независимым.

Машинный код не может быть выполнен процессорами другого типа, чем тот, для которого он был написан. Это несет в себе много проблем, связанных с переносимостью программного обеспечения. Чтобы избежать их, программы распространяются в форме исходного кода (например, программное обеспечение FLOSS ) или в форме промежуточного кода (например, Java ).

Как создается машинный язык?

Генерация машинного кода осуществляется с помощью переводчика, который преобразует читаемую запись программиста на языке программирования в соответствующие коды машинных команд. Форма и содержание машинного кода зависит не только от исходного кода программы, но также от переводчика , операционной системы , версии библиотеки , типа процессора и его машинного языка.

Языки высокого уровня вместе с соответствующими библиотеками и компиляторами позволяют вам использовать одну и ту же исходную программу для создания программы, работающей на разных операционных системах, разных процессорах и т.д. Неправильно написанный исходный код может вызвать проблемы в процессе преобразования в некоторые формы машинного кода.

Что касается исходного кода на ассемблере , он тесно связан с конкретной архитектурой процессора и обычно не может быть запущен на другом без внесения изменений.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *