3.2. Требования языка.
Программы на языке Assembler должны удовлетворять определенному набору требований. Эти требования предъявляются к следующим структурным единицам языка:
- комментарии в программах;
- формат кодирования команд;
- метки;
- команды;
- операнды
- директивы;
- память и регистры.
Рассмотрим эти требования подробнее.
Комментарии в программах. Использование комментариев в программе улучшает ее ясность, особенно там, где назначение набора команд непонятно. Комментарий всегда начинается на любой строе исходного модуля с символа «точка с запятой» (;) и ассемблер полагает в этом случае, что все символы, находящиеся справа от точки с запятой являются комментарием. Комментарий может содержать любые печатные символы, включая пробел. Комментарий может занимать всю строку или следовать за командой на той же строке, как это показано в примерах:
; данная строка полностью является комментарием
MOV BL,0DAH ; комментарий на одной строке с командой
Комментарии появляются только в листингах ассемблирования исходного модуля и не приводят к генерации машинных кодов, поэтому можно включать любое количество комментариев, не оказывая влияния на эффективность выполнения программы.
3.4. Формат кодирования.
Основной формат кодирования команд Assembler’а имеет следующий вид:
[метка] команда [операнд(ы)]
Метка (если имеется), команда и операнд (если имеется) разделяются по крайней мере одним пробелом или символом табуляции. Максимальная длина строки, как правило, – 132 символа. Примеры кода:
COUNT DB 1 ; Имя, команда, один операнд
MOV AX,0 ; Команда, два операнда.
Метка в языке Assembler может содержать следующие символы: буквы от A до Z и от a до z, цифры от 0 до 9, спецсимволы: знак вопроса (?), точку (.) (только в качестве первого символа), символ @, символ $ и символ подчеркивания (_).
Первым символом в метке должна быть буква или спецсимвол. Assembler не делает различия между заглавными и строчными буквами. Максимальная длина метки – 31 символ. Как правило, используют описательные и смысловые метки. Имена регистров, например АХ, DI или AL являются зарезервированными и используются только для указания соответствующих регистров.
Мнемоническая команда указывает Assembler’у какое действие должен выполнить данный оператор. В сегменте данных команда (или директива) определяет поле, рабочую область или константу. В сегменте кода команда определяет действие, например, пересылка (MOV) или сложение (ADD).
В случае, если команда специфицирует выполняемое действие, то операнд определяет начальное значение данных или элементы, над которыми выполняется действие по команде. Команда может иметь один или два операнда, или вообще быть без операндов. Например:
- нет операндов: RET ; Вернуться
- один операнд: INC CX ; увеличить СХ
- два операнда: ADD AX,12 ; прибавить 12 к АХ.
Метка, команда и операнд не обязательно должны начинаться с какой – либо определенной позиции в строке. Однако, рекомендуется записывать их в колонку для большей удобочитаемости программы.
