Что такое язык ассемблера (с примером)
19 августа 2021 г.
Каждый персональный компьютер может обрабатывать логические команды, управляющие его выходными данными. Однако для выдачи команд компьютеру таким образом, чтобы обеспечить высокоуровневое программирование и удобные для пользователя интерфейсы, язык ассемблера переводит команды из английского синтаксиса в логический машинный язык процессора компьютера. Это важная функция компьютерного программирования, позволяющая использовать различные команды и выходные данные, улучшающие возможности компьютера. В этой статье мы обсудим, что такое язык ассемблера, почему языки ассемблера важны и как они работают, а также приведем пример.
Что такое язык ассемблера?
Язык ассемблера — это тип языка программирования, который взаимодействует с аппаратным обеспечением компьютера. Аппаратное обеспечение разных производителей использует машинный язык, такой как двоичные или шестнадцатеричные символы, для выполнения задач. Это означает, что их основной язык труден для понимания и использования. Язык ассемблера является связующим звеном между машинным языком производителя аппаратного обеспечения и более сложными языками программирования, используемыми в программном обеспечении, которые обычно легче читать и манипулировать человеком. Примерами языков программирования являются Python или JavaScript.
Почему важны языки ассемблера?
Языки ассемблера важны, потому что они переводят команды, написанные программистами в виде кода, в инструкции, которые компьютер может понять и выполнить. Этот перевод позволяет различным машинам, созданным разными программистами, использовать одно и то же программное обеспечение. Каждая машина имеет свой собственный внутренний код для решения множества общих задач, таких как:
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Прием ввода с клавиатуры
Отображение информации на экране
Получение ввода от мыши или трекпада
Они обрабатывают эти задачи на машинном языке, который является языком низкого уровня, в основном состоящим из двоичных файлов или комбинации единиц и нулей.
Разработчики программного обеспечения создают более сложные задачи для выполнения компьютерами, которые, если они написаны в двоичном формате, отнимают много времени и ограничивают их. Вместо того, чтобы полагаться на машинный язык, они используют языки программирования, которые используют английский синтаксис или общие слова и логические операции, такие как:
Однако язык программирования все еще необходимо преобразовать в машинный язык, чтобы машины могли его понять. Без языка ассемблера для перевода программисты не могли использовать свои языки высокого уровня, что ограничивало их возможности программирования и увеличивало время, необходимое для написания каждой программы.
Как работают языки ассемблера?
Языки ассемблера различаются в зависимости от аппаратной архитектуры. Архитектура компьютера включает в себя его машинные компоненты, конструкцию аппаратного обеспечения, процессор и отношения, которые он имеет с другими машинами. Конкретные компьютерные архитектуры имеют соответствующие языки ассемблера. Хотя языки ассемблера зависят от их оборудования, они обычно могут работать с различными операционными системами, а это означает, что язык ассемблера может быть совместим с любым языком программирования.
Ассемблер — это программа, которая переводит команды в машинный код. Машинный код состоит из сигналов, которые сообщают электрическим сигналам компьютера о включении или выключении, что является простой и ограничивающей структурой. Ассемблер собирает инструкции на языке ассемблера и переводит каждое действие в серию электрических сигналов.
Вот некоторые важные компоненты языков ассемблера:
Синтаксис
Синтаксис — это определенные правила, которые позволяют работать ассемблерному коду. Вот некоторые из правил:
Каждая строка кода имеет 255 символов.
Каждая строка кода начинается с символа, метки или директивы.
Машина игнорирует любой текст в кавычках.
Один пробел разделяет все элементы строки кода, такие как метки, директивы или инструкции.
Этикетка
Метка — это символ, представляющий текстовую версию адреса в памяти машины. Они находятся в начале строки программы и направляют машину к нужной части исходного кода. Хорошей практикой может быть создание описательных меток, чтобы их было легко идентифицировать. Существует два типа меток: символьные и числовые.
Команда
Команды или операторы представляют собой логические выражения, а не символы. У них есть определенные значения, которые представляют задачи. Например, ADD означает добавить что-то, а MOV означает перенести данные в новое место.
Инструкция
Инструкция — это тип оператора, который ассемблер переводит в один или несколько байтов машинного кода. Каждая инструкция соответствует одной операции процессора.
Директива
Директива — это тип оператора, который не преобразуется в исполняемую инструкцию для оборудования, но помогает автоматизировать сборку и улучшить читаемость кода. Вы можете использовать директиву на этапе предварительной обработки, чтобы упростить организацию кода для удобства использования. Некоторые примеры ассемблерного кода:
ORG: или происхождение
EQU: равняться
ДС. B: определить место для байта
макрос
Макрос — это тип оператора, который функционирует как краткое представление последовательности других инструкций и директив. Ассемблер распознает макрос и расширяет его, чтобы отразить операторы, которые он представляет.
Мнемоника
Мнемоника – это сокращение от операции. Это символическое имя для одной задачи, которая может быть обработана на машинном языке. Примером мнемонического кода является MPY для умножения.
Пример
Вот пример языка ассемблера. Приведенный ниже код сообщает процессору в двоичном коде, что нужно сложить числа 3 и 4:
1: МОВ, экх, 3
МОВ эбкс, 4
ДОБАВИТЬ eax, ebx, ecx
В этом примере «1:» — это метка, которая сообщает компьютеру, с чего начать операцию. «MOV» и «ADD» — это мнемоническая команда для перемещения числа 3 в часть процессора компьютера, где оно может функционировать как переменная. «EAX», «EBX» и «ECX» являются переменными. Первая строка кода загружает 3 в регистр «eax». Вторая строка кода загружает 4 в регистр «ebx». Последняя строка кода добавляет «eax» и «ebx» и сохраняет результат сложения, равный семи, в «ecx».
Некоторые профессиональные отрасли все еще используют этот вид кода. Например, некоторые финансовые фирмы и торговые площадки используют платформы высокочастотной торговли (HFT), написанные на ассемблере. Благодаря тому, что процессор транслирует только ассемблерный код, они экономят время обработки, которое другие фирмы могут потратить на дополнительный перевод из кода более высокого уровня.
Обратите внимание, что ни одна из компаний, упомянутых в этой статье, не связана с компанией Indeed.