34
4. ЯЗЫК АССЕМБ ЛЕРА
Язык ассемблера (assembler language) – язык программирования
микропроцессорных систем, ориентированный на определенную архитектуру системы.
Программа, написанная на языке ассемблера, переводится в машинные коды с помощью
спец иа ль ног о компилятора.
Язык ассемблера использует систему команд процессорного ядра и специ ал ьн ые
директивы, указывающие программе ассемблеру, как организовать различные секции
программы, где располагать данные, как связать отдельные процедуры и т. д. Из-за
множества архитектурных отличий различных систем единого языка ассемблера не
суще ствуе т. Каждый разработчик создает свой язык и свое программное обеспечение для
работы с ним. Все примеры далее написаны на языке ассемблера Atmel AVR Assembler.
Компилятор транслирует исх одные коды с языка ассемблера в объектный код.
Полученный объектный может быть непосредственно запрограммирован в
микроконтроллеры AVR.
4.1. Выражения
Программа на языке ассемблера состоит из отдельных строк. Строка кода не
должна быть длиннее 120 символов. Ассембле р Atmel AVR не различает строчные и
заглавные буквы.
Любая строка может начинаться с метки, которая является набором символов,
заканчиваю щимся двоеточием. Метки используются для указания места, в которое
передаётся управление при переходах, а также для задани я имён переменных.
Вход ная строка может иметь одну из четырёх форм:
º [метка:] директива [операнды] [Комментарий]
º [метка:] инструкция [операнды] [Комментарий]
º Комментарий
º Пустая строка
Комментарий имеет следу ющ ую форму:
º ; [Текст]
Позиции в квадратных скобк ах необязательны. Текст после точки с запятой (;) и до
конца строки игнорируется компилятором. Метки, инструкции и директивы более детально
описываются ниже.
Примеры:
label: .equ var1=100 ; Устанавливает var1 равным 100 (директива)
.equ var2=200 ; Устанавливает var2 равным 200
test: rjmp test ; Бесконечный цикл (инструкция)
; Строка с одним то льк о комментарием
; Ещё одна строка с комментарием
Компилятор не требует, чтобы метки, директивы, комментарии или инструкции
находились в определённой колонке строки.
Команды микроконтроллера и директивы языка ассемблера оперируют
выражениями. Выражением считается набор: операндов (operands), связанных между
собо й операторами (operators) и функциями (functions).
О
ПЕРАНДЫ
Операндами языка ассемблера могут быть: