Арифметические операторы.
Система команд.
Система команд состоит из следующих групп:
Арифметические команды.
Команды пересылки данных.
Команды условного и безусловного перехода.
Логические операции.
Операции с битами данных.
Следует выделить отдельно команды управления аналого-цифровым и цифро-аналоговыми преобразователями и директивы компилятора.
Далее будет приведены таблицы команд с указанием необходимых аргументов, расшифровкой команды, объемом занимаемым в памяти микроконтроллера после компиляции и время выполнения в тактах.
Условные обозначения:
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 | Обмен младшими разрядами |






