Операторы в языке ассемблера имеют чётко определённую структуру, которая обеспечивает правильное преобразование ассемблерного кода в машинный код. Структура оператора включает несколько полей, которые могут отличаться в зависимости от конкретной архитектуры микропроцессора.
Общая структура
В общем случае, каждый оператор ассемблера включает следующие поля:
- Поле метки: Определяет начало оператора и может содержать метку, используемую для обращений внутри программы. Метка является необязательной, за исключением случаев, когда она используется для определения значений через псевдооперации, такие как
EQU
илиMACRO
. - Код операции: Содержит мнемонический код ассемблерной команды, которая должна быть выполнена.
- Поле адреса: Включает адреса операндов или данные, непосредственно связанные с операцией.
- Поле комментариев: Предназначено для вставки комментариев, которые не обрабатываются ассемблером, но облегчают понимание кода. Комментарии начинаются с определённого символа, например, точки с запятой.
Разделители
Разделители используются для отделения одного поля от другого и могут варьироваться в зависимости от типа микропроцессора:
- Для Intel 8080:
- Двоеточие может использоваться в поле метки.
- Пробелы разделяют код операции от операндов.
- Запятая разделяет операнды.
- Точка с запятой отделяет комментарии.
- Для Motorola 6800:
- Пробел после метки или имени аккумулятора в коде операции.
- Запятая между числовыми значениями и регистрами для индексирования.
- Пробел или звездочка отмечает начало комментария.
Примеры операторов
- Для Intel 8080:
EXTP: ADI 30 ; Прибавить смещение
MVI C,5
RAR
- Для Motorola 6800:
EXTR ADDA #30 Прибавить смещение
LDAB #5
RORA
Эти примеры демонстрируют, как в различных моделях микропроцессоров используются мнемонические обозначения и разделители для формирования операторов в языке ассемблера. Понимание этих особенностей критически важно для эффективной разработки программ на ассемблере.