Операнды

Язык ассемблера

Язык ассемблера (assembler language) - язык программирования микропроцессорных систем, ориентированный на определенную архитектуру системы. Программа, написанная на языке ассемблера, переводится в машинные коды с помощью специального компилятора.

Язык ассемблера использует систему команд процессорного ядра и специальные директивы, указывающие программе ассемблеру, как организовать различные секции программы, где располагать данные, как связать отдельные процедуры и т. д. Из-за множества архитектурных отличий различных систем единого языка ассемблера не существует. Каждый разработчик создает свой язык и свое программное обеспечение для работы с ним. Компилятор транслирует исходные коды с языка ассемблера в объектный код. Полученный объектный может быть непосредственно запрограммирован в микроконтроллеры.

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

Входная строка может иметь одну из четырех форм:

Ø [метка:] директива [операнды] [Комментарий]

Ø [метка:] инструкция [операнды] [Комментарий]

Ø Комментарий

Ø Пустая строка

Комментарий имеет следующую форму:

; [Текст]

Позиции в квадратных скобках необязательны. Текст после точки с запятой (;) и до конца строки игнорируется компилятором.

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

Команды микроконтроллера и директивы языка ассемблера оперируют выражениями. Выражением считается набор операндов (operands), связанных между собой операторами (operators) и функциями (functions).

Операндами языка ассемблера могут быть:

Ø Определяемые пользователем метки.

Метка – это любая последовательность буквенных или цифровых символов, начинающихся с буквы. Символы, допускающиеся в метках перечислены ниже:

! $ % &:? [ \ ] ^ _ ` { | } ~ A-Z a-z

Метка не должна совпадать с зарезервированными компилятором именами.

Метка может располагаться перед командой/директивой или входить в директиву.

Если метка располагается перед командой (или перед директивой) микроконтроллера, то после неё ставится символ: (двоеточие). Двоеточие указывает ассемблеру, что метка задает состояние программного счетчика в отмеченном месте программы.

Например,

Lab23: mov R6,R7; строка в программе отмечена меткой Lаb23

Если метка входит в директиву то, она рассматривается как один из операндов этой директивы и двоеточием не отмечается.

Ø Определяемые пользователем с помощью директивы set переменные.

Директива set связывает метку и переменную. Эта метка может использоваться далее в программе вместо переменной. Метка, указывающая на переменную в соответствии с директивой set, может быть впоследствии изменена.

Ø Определяемые пользователем с помощью директивы equ константы.

Директива equ связывает метку с константой. Эта метка может использоваться далее в программе. Метка, указывающая на константу в соответствии с директивой set, не может быть впоследствии изменена.

Ø Целые константы

Начинаются с цифры, заканчиваются буквой, определяющей базу системы счисления:

H – шестнадцатиричная,

D – десятичная,

O, Q – восьмеричная,

B – двоичная.

Ø Строковые константы

Это последовательность символов в одинарных (‘) или (“)двойных кавычках. Если не используется директива DB, то принимается во внимание только первых два символа строковой константы, остальные отбрасываются.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: