Машинный язык (двоичный код, машинный тип) - система инструкций и данных

Машинный язык (двоичный код, машинный тип) - это система инструкций и данных, непосредственно выполняемых центральным процессором в компьютере.
Машинный язык является примитивным языком программирования. Это также самое основное представление, или компьютерные программы , скомпилированные и / или собранные на самом низком уровне - машины уровня (от англ. Machine, иногда неформальный термин для устройства, машины, транспортного средства - в нашем случае компьютер). Машинный язык иногда называют выходец ( англо. Native кода ) при обращении к конкретному приложению аппаратных средств, то есть когда части кода или выражения зависят от платформы.
Компьютеры и их мозги - процессоры - работают на электричестве . Это электронные схемы, работа которых основана на состояниях напряжения; состояние с напряжением и состояние (почти) без напряжения. Машинный язык или его двоичный код - система 1 и 0 - напрямую соответствуют состояниям напряжения в интегральной схеме .

Инструкции на машинном языке.
Инструкции представляют собой битовые комбинации, где каждый шаблон соответствует определенной команде, данной машине. Каждая модель процессора имеет свой собственный машинный язык или набор команд. Усовершенствованные однопроцессорные версии или более новые модели, основанные на предыдущих, могут использовать все инструкции своего предшественника, а также добавленные к ним инструкции.
Если процессор P1 полностью понимает язык процессора P2, говорят, что P1 и P2 совместимы. Например, так называемые IBM - совместимые компьютеры получили это обозначение именно потому, что они понимают машинный язык, созданный IBM, а затем примененный к большинству персональных компьютеров.
Но даже незначительные различия в почти полностью совместимых процессорах могут вызывать различные эффекты при наличии одинаковых инструкций. Иногда новая модель изменяет или нарушает инструкции своего предшественника, что затрудняет миграцию машинного языка между двумя процессорами. Даже при использовании одной и той же модели процессора они не будут одинаково работать на одном и том же машинном языке, если системная память настроена по-разному, если используется другая операционная система или периферия отличается. Это связано с тем, что машинный язык не содержит информации о конфигурации системы.
Проще говоря, пользователи часто указывают на эту проблему, спрашивая: «Так как же компьютер работает с соседом, а не со мной?!»
Все наборы команд в данном машинном коде могут, но не могут иметь одинаковую длину. Как организованы шаблоны, зависит в первую очередь от спецификаций машинного кода.

Программы
Компьютерная программа - это серия инструкций, выполняемых центральным процессором. Простые процессоры могут выполнять инструкции только одна за другой, в то время как сложные процессоры, подобные тем, которые используются в суперкомпьютерах, способны выполнять несколько команд одновременно, так называемая параллельная обработка.
При выполнении программы инструкции могут выполняться последовательно по порядку, но также и в «прыжках», то есть при определенных условиях выполнение в порядке может быть прервано и возобновлено по другому адресу в соответствии с заданными критериями.

Язык ассемблера
Написание программ непосредственно на машинном языке было бы очень трудоемкой задачей. Разработчики должны позаботиться о каждом бите в данной инструкции. Также было бы очень трудно справиться с непроницаемыми столбцами и рядами единиц и нулей.
Машинный язык часто смешивается с языком ассемблера . Правда, гораздо более четкое представление о машинном языке дано человеку на ассемблере, но ассемблер - это низкоуровневый язык программирования, который представляет машинный язык конкретной архитектуры процессора в читаемой форме.
Программы, написанные на ассемблере, имеют возможность отправлять прямые команды процессору, а также использовать весь спектр компьютерной архитектуры. Поскольку эти программы работают практически на уровне машинного кода и не имеют каких-либо вспомогательных конструкций, обобщений кода и машиноподобных «нерелевантных» вещей, они намного меньше и быстрее, чем программы, написанные на каком-то «обычном» языке программирования .
Некоторые из основных недостатков таких программ - плохая читаемость (особенно в крупных проектах), сложность кода и практическая невозможность преобразования того же кода в архитектуру другого процессора . Из-за этих недостатков ассемблер сегодня используется только в системах реального времени и других конкретных системах.

Нет комментариев
Добавить комментарий