Операндами языка ассемблера могут быть:
0 Определяемые пользователем метки.
Метка может располагаться перед командой/директивой или входить в директиву.
Если метка располагается перед командой (или перед директивой) микроконтроллера, то после неё ставится символ : (двоеточие). Двоеточие указывает ассемблеру, что метка задает состояние программного счетчика в отмеченном месте программы.
Например,
Lab23: mov r5,r7 ; строка в программе отмечена меткой Lab23
Если метка входит в директиву то, она рассматривается как один из операндов этой директивы и двоеточием не отмечается.
Например,
.set pina = $19 ; метка pina с помощью директивы .set связывается с числом $19
0 Определяемые пользователем с помощью директивы set переменные.
Директива .set связывает метку и переменную. Эта метка может использоваться далее в программе вместо переменной. Метка, указывающая на переменную в соответствии с директивой set, может быть впоследствии изменена.
Например,
.set pina = $19 ; метка pina связывается с числом $19
.set porta = pina + 2 ; метка porta связывается с числом $19+2=$1 B
outporta,r2 Пересылка данных из регистра r2 в porta (по
адресу $1 B)
0 Определяемые пользователем с помощью директивы equ константы.
Директива equ связывает метку с константой. Эта метка может использоваться далее в программе. Метка, указывающая на константу в соответствии с директивой set, не может быть впоследствии изменена.
Например,
.equ pina = $19 ; метка pina связывается с числом $19
.equ porta = pina + 2 ; метка porta связывается с числом $19+2=$1 B
out porta,r2 ; пересылка данных из регистра r2 в porta (по
;адресу$1В)
0 Целые константы; заданные в одном из следующих форматов:
десятичный (decimal), например, 255;
шестнадцатеричный (hexadecimal) начинается с символа $ или 0х,
например, $0a или 0x0a;
двоичный (binary) - начинается с символов 0b, например, 0b00001010;
восьмеричный (octal) начинается с символа 0, например, 077.