Программа на языке ассемблера состоит из отдельных строк. Строка кода не должна быть длиннее 120 символов. Ассемблер Atmel AVR не различает строчные и заглавные буквы.
Любая строка может начинаться с метки, которая является набором символов, заканчивающимся двоеточием. Метки используются для указания места, в которое передаётся управление при переходах, а также для задания имён переменных.
Входная строка может иметь одну из четырёх форм:
0 [метка:] директива [операнды] [Комментарий]
0 [метка:] инструкция [операнды] [Комментарий]
0 Комментарий
0 Пустая строка
Комментарий имеет следующую форму:
0 ; [Текст]
Позиции в квадратных скобках необязательны. Текст после точки с запятой (;) и до конца строки игнорируется компилятором. Метки, инструкции и директивы более детально описываются ниже.
Примеры:
label: .equ var1=100 ; Устанавливает var1 равным 100 (директива)
.equ var2=200 ; Устанавливает var2 равным 200
test: rjmp test ; Бесконечный цикл (инструкция)
; Строка с одним только комментарием
; Ещё одна строка с комментарием
Компилятор не требует, чтобы метки, директивы, комментарии или инструкции находились в определённой колонке строки.
Команды микроконтроллера и директивы языка ассемблера оперируют выражениями. Выражением считается набор: операндов (operands), связанных между собой операторами (operators) и функциями (functions).