Поле адреса в ассемблерных языках микропроцессоров играет ключевую роль, поскольку оно определяет местоположение данных или кода в памяти. Разнообразие способов задания адреса увеличивает гибкость и мощь программирования.
Способы задания адреса в МП Intel 8080
- Численные значения: Адрес может быть представлен в различных системах счисления — шестнадцатеричной, десятичной, восьмеричной или двоичной. Примеры:
- Число
16в командеMVI С, 16интерпретируется как десятичное, если не указано иное. - Шестнадцатеричное значение
FFHначинается с цифры, чтобы отличать его от символов.
- Текущее значение счётчика адреса: Обозначается символом
$. Например, командаJMP $ + 6перенаправит исполнение программы на шесть ячеек вперёд от текущего адреса. - Строки символов в ASCII: Пример —
СРГЕ, где содержимое аккумулятора сравнивается с кодом символаЕв ASCII. - Символические имена: Использование имен вместо числовых адресов, например
LXI B, LABEL, гдеLABEL— метка в программе. - Арифметические и логические выражения: Позволяют выполнять вычисления прямо в строке кода, например,
JMP LENGTH + 4.
Особенности адресации в ассемблере МП Motorola 6800
В ассемблере Motorola 6800 также возможно использование числовых значений, текущего значения счётчика адреса, символьных строк в коде ASCII и символических имен. Однако, особенностью Motorola 6800 является более простой подход к арифметическим выражениям:
- Поддерживаются только основные операции, такие как умножение и деление, без использования скобок для изменения приоритета операций.
Примеры использования различных способов адресации
- Числовые значения:
ANI MASK: Выделяет младшие 4 бита по адресу, определённому значениемMASK.
- Символьные строки:
ERRM: DB 'DATA TOO LARGE': Сообщение об ошибке сохраняется как строка символов в коде ASCII.
- Символические имена:
LDA ALPH: Команда загружает в аккумулятор содержимое по адресу, обозначенному меткойALPH.
- Арифметические выражения:
OUT (PORT + 2): Отправляет данные на устройство, адрес которого вычисляется какPORT + 2.
Использование адресного поля требует точности и внимательности при программировании, чтобы избежать ошибок в вычислениях и обеспечить корректную работу программы. Ошибки в адресации могут привести к неверной интерпретации данных или кода, что существенно снижает надёжность программного обеспечения.
Ассемблеры как Intel 8080, так и Motorola 6800 предлагают разные подходы к адресации, каждый из которых имеет свои преимущества и недостатки. Важно выбирать подходящий метод в зависимости от задачи и архитектуры микропроцессора.