Арифметические операторы.
Система команд.
Система команд состоит из следующих групп:
Арифметические команды.
Команды пересылки данных.
Команды условного и безусловного перехода.
Логические операции.
Операции с битами данных.
Следует выделить отдельно команды управления аналого-цифровым и цифро-аналоговыми преобразователями и директивы компилятора.
Далее будет приведены таблицы команд с указанием необходимых аргументов, расшифровкой команды, объемом занимаемым в памяти микроконтроллера после компиляции и время выполнения в тактах.
Условные обозначения:
Rn – Регистр микроконтроллера R0-R7.
direct – внутренний адрес в пределах пользовательской оперативной памяти (00h – FFh)
@Ri – не прямая адресация на область памяти (используются регистры R0 и R1 микроконтроллера)
source, dest – любое из Rn, direct или @Ri. (source – при пересылке данных источник данных, dest – при перемещении данных место помещения результата)
#data – 8 разрядная константа.
#data16 – 16 разрядная константа.
|
|
bit - 8 битная прямая адресация на бит.
rel – 8 битный знаковый относительный адрес.
addr11 - 11 битный адрес в пределах текущей 2 Кбайтной страницы программы.
addr16 - 16 битный адрес программы.
DPTR – указатель на ячейку оперативной памяти.
Команда | Описание | Количество байт в коде | Время выполения |
ADD A,source | Прибавление содержимого второго аргумента к аккумулятору | 1,2 | |
ADD A, #data | Прибавление константы к аккумулятору | ||
ADDC A,source | Прибавление содержимого второго аргумента к аккумулятору с переносом | 1,2 | |
ADDC A,#data | Прибавление константы к аккумулятору с переносом | ||
SUBB A,source | Вычитание второго аргумента из аккумулятора с заемом | 1,2 | |
SUBB A,#data | Вычитание константы из аккумулятора с заемом | ||
INC A | Прибавление единицы к аккумулятору | ||
INC source | Прибавление единицы к аргументу | 1,2 | |
INC DPTR | Прибавление единицы к 24 разрядному значению в области памяти на которое указывает адресный указатель DPTR | ||
DEC A | Уменьшение на единицу значения аккумулятора | ||
DEC source | Уменьшение на единицу значения аргумента | 1,2 | |
MUL AB | Перемножение значений находящихся в регистрах A и B и помещение результата в регистр A | ||
DIV AB | Целочисленное деление A на B | ||
DA A | Десятичная коррекция |
Команда | Описание | Количество байт в коде | Время выполения |
MOV A,source | Помещение значения второго аргумента в аккумулятор | 1,2 | |
MOV A,#data | Помещение в аккумулятор числовой константы | ||
MOV dest,A | Помещение значения аккумулятора в получатель | 1,2 | |
MOV dest,source | Помещение значения второго аргументя в получатель | 1,2,3 | |
MOV dest,#data | Помещение в получатель числовой константы | 2,3 | 12,24 |
MOV DPTR,#data16 | Помещение 16 разрядной константы по прямому адресу в пямяти | ||
MOVC A,@A+DPTR | Помещение значения из области памяти программ в аккумулятор | ||
MOVC A,@A+PC | Помещение значения из области памяти программ в аккумулятор | ||
MOVX A,@Ri | Помещение значения из оперативной памяти в аккумулятор | ||
MOVX A,@DPTR | Помещение значения из оперативной памяти в аккумулятор | ||
MOVX @Ri,A | Помещение аккумулятора в оперативную память | ||
MOVX @DPTR,A | Помещение аккумулятора в оперативную память | ||
PUSH direct | Помещение регистров в стек | ||
POP direct | Извлечение регистров из стека | ||
XCH A,source | Обмен байтами | 1,2 | |
XCHD A,@Ri | Обмен младшими разрядами |
|
|