- Краткая система команд микроконтроллеров C16x/ST10 (html)
- Полная система команд микроконтроллеров C16x/ST10x на русском языке (pdf)
Условные обозначения
| IDXi | Индексные регистры косвенной адресации (IDX0 и IDX1) |
| QRj | Регистры прибавляемого/вычитаемого значения для Rwn (QR0 и QR1) |
| QXj | Регистры прибавляемого/вычитаемого значения для IDXi (QX0 и QX1) |
| IDXi* | Модификация регистра IDXi после исполнения команды |
| Rwn* | Модификация регистра Rwn после исполнения команды |
| ACC | Аккумулятор; 40-битовый регистр результата операций (состоит из 8-битового регистра MAE и двух 16-битовых регистров MAH и MAL: MAE||MAH||MAL) |
| CoReg | Регистры сопроцессора (MSW, MAH, MAS, MAL, MCW или MRW) |
| [op1] | Косвенная адресация (op1 является адресом используемого значения) |
| || | Объединение двух (или более) регистров в один,например: (op2||op1) - op2 - старшее слово 32-разрядного числа, op1 - младшее слово |
| >> | Сдвиг битов вправо (без сохранения знака) |
| << | Сдвиг битов влево (без сохранения знака) |
| >>> | Арифметический сдвиг битов вправо (с сохранением знака) |
| <-> | Сравнение; осуществляется путем вычитания второго операнда из первого без сохранения результата (только обновление флагов арифметико-логического устройства) |
| <-- | Направление копирования значения Например: op1<--op2 Копировать значение op2 в op1 op1<--op1+op2 Сложить значения op1 и op2 и поместить результат в op1 |
| В командах сопроцессора используется 5 модификаций регистра IDXj: | ||
| IDXi | IDXi<--IDXi | (без модификации) |
| IDXi+ | IDXi<--IDXi+2 | (i=0,1) |
| IDXi- | IDXi<--IDXi-2 | (i=0,1) |
| IDXi+QXj | IDXi<--IDXi+QXj | (i,j=0,1) |
| IDXi-QXj | IDXi<--IDXi-QXj | (i,j=0,1) |
| В командах сопроцессора используется 5 модификаций регистра Rwn: | ||
| Rwn | Rwn<--Rwn | (без модификации) |
| Rwn+ | Rwn<--Rwn+2 | (n=0...15) |
| Rwn- | Rwn<--Rwn-2 | (n=0...15) |
| Rwn+QRj | Rwn<--Rwn+QRj | (n=0...15;j=0,1) |
| Rwn-QRj | Rwn<--Rwn-QRj | (n=0...15;j=0,1) |
Арифметические операции
Абсолютное значениеCoABS Абсолютное значениеCoABS op1,op2 СложениеCoADD op1,op2 СложениеCoADD2 op1,op2 Загрузка аккумулятораCoLOAD op1,op2 Загрузка аккумулятораCoLOAD- op1,op2 Загрузка аккумулятораCoLOAD2 op1,op2 Загрузка аккумулятораCoLOAD2- op1,op2 |
Инверсия знакаCoNEG Инверсия знака с округлениемCoNEG rnd Округление аккумулятораCoRND ВычитаниеCoSUB op1,op2 ВычитаниеCoSUB2 op1,op2 ВычитаниеCoSUB2R op1,op2 ВычитаниеCoSUBR op1,op2 |
Умножение с накоплением и округлением результатаCoMAC op1,op2,rnd Умножение с накоплениемCoMAC op1,op2 Умножение с накоплениемCoMAC- op1,op2 Умножение с накоплением и округлением результата, пересылка данныхCoMACM op1,op2,rnd Умножение с накоплением, пересылка данныхCoMACM op1,op2 Умножение с накоплением, пересылка данныхCoMACM- op1,op2 Умножение с накоплением и округлением результата, пересылка данныхCoMACMR op1,op2,rnd Умножение с накоплением, пересылка данныхCoMACMR op1,op2 Умножение с накоплением и округлением результата, пересылка данныхCoMACMRsu op1,op2,rnd Умножение с накоплением, пересылка данныхCoMACMRsu op1,op2 Умножение с накоплением и округлением результата, пересылка данныхCoMACMRu op1,op2,rnd Умножение с накоплением, пересылка данныхCoMACMRu op1,op2 Умножение с накоплением и округлением результата, пересылка данныхCoMACMRus op1,op2,rnd Умножение с накоплением, пересылка данныхCoMACMRus op1,op2 Умножение с накоплением и округлением результата, пересылка данныхCoMACMsu op1,op2,rnd Умножение с накоплением, пересылка данныхCoMACMsu op1,op2 Умножение с накоплением, пересылка данныхCoMACMsu- op1,op2 Умножение с накоплением и округлением результата, пересылка данныхCoMACMu op1,op2,rnd Умножение с накоплением, пересылка данныхCoMACMu op1,op2 Умножение с накоплением, пересылка данныхCoMACMu- op1,op2 Умножение с накоплением и округлением результата, пересылка данныхCoMACMus op1,op2,rnd Умножение с накоплением, пересылка данныхCoMACMus op1,op2 Умножение с накоплением, пересылка данныхCoMACMus- op1,op2 Умножение с накоплением и округлением результатаCoMACR op1,op2,rnd Умножение с накоплениемCoMACR op1,op2 Умножение с накоплением и округлением результатаCoMACRsu op1,op2,rnd Умножение с накоплениемCoMACRsu op1,op2 |
Умножение с накоплением и округлением результатаCoMACRu op1,op2,rnd Умножение с накоплениемCoMACRu op1,op2 Умножение с накоплением и округлением результатаCoMACRus op1,op2,rnd Умножение с накоплениемCoMACRus op1,op2 Умножение с накоплением и округлением результатаCoMACsu op1,op2,rnd Умножение с накоплениемCoMACsu op1,op2 Умножение с накоплениемCoMACsu- op1,op2 Умножение с накоплением и округлением результатаCoMACu op1,op2,rnd Умножение с накоплениемCoMACu op1,op2 Умножение с накоплениемCoMACu- op1,op2 Умножение с накоплением и округлением результатаCoMACus op1,op2,rnd Умножение с накоплениемCoMACus op1,op2 Умножение с накоплениемCoMACus- op1,op2 Умножение с округлением результатаCoMUL op1,op2,rnd УмножениеCoMUL op1,op2 УмножениеCoMUL- op1,op2 Умножение с округлением результатаCoMULsu op1,op2,rnd УмножениеCoMULsu op1,op2 УмножениеCoMULsu- op1,op2 Умножение с округлением результатаCoMULu op1,op2,rnd УмножениеCoMULu op1,op2 УмножениеCoMULu- op1,op2 Умножение с округлением результатаCoMULus op1,op2,rnd УмножениеCoMULus op1,op2 УмножениеCoMULus- op1,op2 |
Сравнение регистровCoCMP op1,op2 МаксимумCoMAX op1,op2 МинимумCoMIN op1,op2 Арифметический сдвиг вправо с округлениемCoASHR op1,rnd |
Арифметический сдвиг вправоCoASHR op1 Сдвиг влевоCoSHL op1 Сдвиг вправоCoSHR op1 |
Пересылка данныхCoMOV op1,op2 |
Сохранение регистров сопроцессораCoSTORE op1,op2 |
Пустая операцияCoNOP |




