Операнды

 

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

 

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.