Изучение архитектуры и основ программирования микроконтроллеров. Индришенок В.И - 13 стр.

UptoLike

-13-
чает в себя текстовый редактор, транслятор-ассемблер, отладчик-
симулятор и программу загрузки Flash-памяти и EEPROM через
специальное устройство-программатор. Язык ассемблера состоит
из набора команд-инструкций, в которых можно использовать
простые операторные выражения, и директив, используемых на
этапе трансляции-ассемблирования.
Базовый набор команд подразделяется на арифметико-
логические, передачи данных, переходов и битовые
. Команда со-
стоит из кода операции и одного или двух операндов. Ряд команд
не содержит операндов. Операндом может являться: либо значе-
ние, непосредственно заносящееся в команду; либо адрес ячейки,
содержащей значение, - прямая адресация; либо адрес ячейки, со-
держащей адрес, - косвенная адресация. Список и подробное опи-
сание команд содержится в [1-6] а
также в справочном разделе
среды программирования AVR Studio. Ниже рассматриваются
примеры команд в таком виде, как они записываются в программе.
В арифметических и логических командах обязательным
операндом является один из рабочих (операционных) регистров.
В мнемокоде этот операнд указывается первым и является как ре-
гистром источником, так и регистром назначения, в который за-
носится
результат операции (за исключением операций сравне-
ния). В соответствии с результатом операции устанавливаются
значения флагов в регистре состояния SREG.
add r16, r20
Сложение данных, находящихся в регистрах r16 и r20 ..
adc tmp, r21
Сложение данных, находящихся в регистрах tmp и r20, и ;
значения бита переноса C в регистре флагов состояния SREG.
( tmpимя регистра, предварительно присвоенное директивой
ассемблера, например, .def tmp=r17).
inc tmp
Увеличение значения в регистре tmp на 1.
com tmp
Инвертирование разрядов (дополнение до единицы).
neg tmp
Смена знака (дополнение до двух).
cp tmp, level
Сравнение - вычитание значения level из значения tmp. Флаги
SREG изменяются в соответствии с результатом. Операнды-
регистры не изменяются.
cpi tmp, up2
Сравнение значения tmp и константы up2,предварительно
объявленной директивой ассемблера (.equ up2=170).
ori tmp, $30
Поразрядное ИЛИ значения tmp и непосредственно заданного
шестнадцатиричного числа. Результат помещается в
регистр tmp.
                                   -13-

чает в себя текстовый редактор, транслятор-ассемблер, отладчик-
симулятор и программу загрузки Flash-памяти и EEPROM через
специальное устройство-программатор. Язык ассемблера состоит
из набора команд-инструкций, в которых можно использовать
простые операторные выражения, и директив, используемых на
этапе трансляции-ассемблирования.
     Базовый набор команд подразделяется на арифметико-
логические, передачи данных, переходов и битовые. Команда со-
стоит из кода операции и одного или двух операндов. Ряд команд
не содержит операндов. Операндом может являться: либо значе-
ние, непосредственно заносящееся в команду; либо адрес ячейки,
содержащей значение, - прямая адресация; либо адрес ячейки, со-
держащей адрес, - косвенная адресация. Список и подробное опи-
сание команд содержится в [1-6] а также в справочном разделе
среды программирования AVR Studio. Ниже рассматриваются
примеры команд в таком виде, как они записываются в программе.
     В арифметических и логических командах обязательным
операндом является один из рабочих (операционных) регистров.
В мнемокоде этот операнд указывается первым и является как ре-
гистром источником, так и регистром назначения, в который за-
носится результат операции (за исключением операций сравне-
ния). В соответствии с результатом операции устанавливаются
значения флагов в регистре состояния SREG.
add r16, r20    Сложение данных, находящихся в регистрах r16 и r20 ..
adc tmp, r21    Сложение данных, находящихся в регистрах tmp и r20, и ;
                значения бита переноса C в регистре флагов состояния SREG.
                ( tmp –имя регистра, предварительно присвоенное директивой
                ассемблера, например, .def tmp=r17).
inc tmp         Увеличение значения в регистре tmp на 1.
com tmp         Инвертирование разрядов (дополнение до единицы).
neg tmp         Смена знака (дополнение до двух).
cp tmp, level   Сравнение - вычитание значения level из значения tmp. Флаги
                SREG изменяются в соответствии с результатом. Операнды-
                регистры не изменяются.
cpi tmp, up2    Сравнение значения tmp и константы up2,предварительно
                объявленной директивой ассемблера (.equ up2=170).
ori tmp, $30    Поразрядное ИЛИ значения tmp и непосредственно заданного
                шестнадцатиричного числа. Результат помещается в
                регистр tmp.