Арифметические команды
ABS R1,Rres Абсолютная величина целого
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.L1 или .L2 | xsint | нет | нет | sint | 1-тактная |
Описание: абсолютная величина R1 устанавливается в Rres.
ADD2 R1,R2,Rres Два 16-разрядных целых добавляются к старшей и младшей половинам регистра
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.S1 или .S2 | sint | xsint | нет | sint | 1-тактная |
Описание: старшая и младшая половины R1 добавляются, соответственно, к старшей и младшей половинам R2. Перенос из младшей половины результата в старшую не производится. Результат устанавливается в Rres.
ADDR1,R2,Rres Сложение знаковых целых
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.L1 или .L2 | sint sint xsint scst5 scst5 | xsint xsint slong xsint slong | нет | sint slong slong sint slong | 1-тактная | |
.S1 или .S2 | sint scst5 | xsint xsint | sint sint | |||
.D1 или .D2 | sint ucst5 | sint sint | sint sint |
Описание: R2 добавляется к R1 (для устройств .L и .S) или R1 добавляется к R2 (для устройств .D) и результат устанавливается в Rres.
ADDK cst,Rres Сложение целых с использованием знаковой 16-разрядной константы
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.S1 или .S2 | scst16 | Rres | нет | uint | 1-тактная |
Описание: 16-разрядная знаковая константа добавляется к регистру Rres и результат устанавливается в Rres.
ADDUR1,R2,Rres Сложение беззнаковых целых
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.L1 или .L2 | uint xuint | xuint ulong | нет | ulong ulong | 1-тактная |
Описание: R2 добавляется к R1 и результат устанавливается в Rres.
MPY, MPYU, MPYUS, MPYSU R1,R2,Rres Умножение 16 ´ 16 младших бит знаковых или беззнаковых целых
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.М1 или .М2 | sмл.16бит uмл.16бит uмл.16бит sмл.16бит scst5 scst5 | хsмл.16бит xuмл.16бит xsмл.16бит xuмл.16бит xsмл.16бит xuмл.16бит | sint uint sint sint sint sint | Умножение 16 на 16 |
Описание: 16 младших бит R1 умножаются на 16 младших бит R2 и результат размещается в Rres. В команде MPY оба операнда знаковые. Позиция буквы S в мнемонике команды соответствует знаковому из двух сомножителей R1 и R2, другой из которых – без знака.
MPYН, MPYНU, MPYНUS, MPYНSU R1,R2,Rres Умножение 16 ´ 16 старших бит знаковых или беззнаковых целых
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.М1 или .М2 | sст.16бит uст.16бит uст.16бит sст.16бит | хsст.16бит xuст.16бит xsст.16бит xuст.16бит | sint uint sint sint | Умножение 16 на 16 |
Описание: 16 старших бит R1 умножаются на 16 старших бит R2 и результат размещается в Rres. В команде MPY оба операнда знаковые. Позиция буквы S в мнемонике команды соответствует знаковому из двух сомножителей R1 и R2, другой из которых – без знака.
MPYНL, MPYНLU, MPYНULS, MPYНSLU R1,R2,Rres Умножение 16 старших бит на 16 младших бит знаковых или беззнаковых целых
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.М1 или .М2 | sст.16бит uст.16бит uст.16бит sст.16бит | хsмл.16бит xuмл.16бит xsмл.16бит xuмл.16бит | sint uint sint sint | Умножение 16 на 16 |
Описание: 16 старших бит R1 умножаются на 16 младших бит R2 и результат размещается в Rres. В команде MPYHL оба операнда знаковые, а в команде MPYHLU – оба беззнаковые. Позиция буквы S в мнемонике команды соответствует знаковому из двух сомножителей R1 и R2, другой из которых – без знака.
MPYLН, MPYLНU, MPYLUНS, MPYLSНU R1,R2,Rres Умножение 16 младших бит на 16 старших бит знаковых или беззнаковых целых
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.М1 или .М2 | sмл.16бит uмл.16бит uмл.16бит sмл.16бит | хsст.16бит xuст.16бит xsст.16бит xuст.16бит | sint uint sint sint | Умножение 16 на 16 |
Описание: 16 младших бит R1 умножаются на 16 старших бит R2 и результат размещается в Rres. В команде MPYHL оба операнда знаковые, а в команде MPYHLU – оба без знаковые. Позиция буквы S в мнемонике команды соответствует знаковому из двух сомножителей R1 и R2, другой из которых – без знака.
SUB, SUBU R1,R2,Rres Вычитание знакового или беззнакового целого без насыщения
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.L1 или .L2 | sint xsint sint xsint uint xuint scst5 | xsint sint xsint sint xuint uint slong | sint sint slong slong ulong ulong slong | 1-тактная | |
.S1 или .S2 | sint scst5 | xsint xsint | sint sint | ||
.D1 или .D2 | sint sint | sint ucst5 | sint sint |
Описание: R2 вычитается из R1 и результат размещается в Rres.
Логические команды
ANDR1,R2,Rres Поразрядное И
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.S1 или .S2, .L1 или .L2 | uint scst5 | xuint xuint | нет | uint uint | 1-тактная |
Описание: над R1 и R2 выполняется поразрядное И. Результат устанавливается в Rres. Константа распределяется на 32 разрядах.
CMPEQR1,R2,RresСравнение знаковых целых на равенство
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.L1 или .L2 | sint scst5 xsint scst5 | xsint xsint slong slong | нет | uint uint uint uint | 1-тактная |
Описание: сравнение R1 с R2. Если R1 = R2, то в Rres записывается 1. В противном случаев Rres записывается 0.
CMPGT R1,R2,RresСравнение знаковых целых в отношении «больше»
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.L1 или .L2 | sint scst5 xsint scst5 | xsint xsint slong slong | нет | uint uint uint uint | 1-тактная |
Описание: сравнение R1 с R2. Если R1 > R2, то в Rres записывается 1. В противном случаев Rres записывается 0. Если в команде константа указана на месте R2, то ассемблер сам переставит её на первое место.
CMPGTU R1,R2,RresСравнение беззнаковых целых в отношении
«больше»
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.L1 или .L2 | uint ucst4 xuint ucst4 | xuint xuint ulong ulong | нет | uint uint uint uint | 1-тактная |
Описание: сравнение R1 с R2. Если R1 > R2, то в Rres записывается 1. В противном случаев Rres записывается 0. Если в команде константа указана на месте R2, то ассемблер сам переставит её на первое место.
CMPLT R1,R2,Rres Сравнение знаковых целых в отношении «меньше»
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.L1 или .L2 | sint scst5 xsint scst5 | xsint xsint slong slong | нет | uint uint uint uint | 1-тактная |
Описание: сравнение R1 с R2. Если R1 < R2, то в Rres записывается 1. В противном случаев Rres записывается 0. Если в команде константа указана на месте R2, то ассемблер сам переставит её на первое место.
CMPLTU R1,R2,Rres Сравнение беззнаковых целых в отношении
«меньше»
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.L1 или .L2 | uint ucst4 xuint ucst4 | xuint xuint ulong ulong | нет | uint uint uint uint | 1-тактная |
Описание: сравнение R1 с R2. Если R1 < R2, то в Rres записывается 1. В противном случаев Rres записывается 0. Если в команде константа указана на месте R2, то ассемблер сам переставит её на первое место.
NOP R1Нет операции
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
нет | ucst4 | нет | нет | NOP |
Описание: R1 задаёт число тактов, в течение которых никакие операции (за исключением перехода) не производятся. NOP без операнда рассматривается как NOP 1.
NOT R1,Rres Поразрядное НЕ
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.L1 или .L2, .S1 или .S2 | xuint | нет | uint | 1-тактная |
OR R1,R2,Rres Поразрядное ИЛИ
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.L1 или .L2, .S1 или .S2 | uint scst5 | xuint xuint | uint uint | 1-тактная |
Примечание: константа представляется в дополнительном коде и расширяется знаком вплоть до 32 бит.
SHL R1,R2,Rrest Арифметический сдвиг влево
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.S1 или .S2 | xsint slong xuint xsint xuint slong | uint uint uint ucst5 ucst5 ucst5 | sint slong ulong sint ulong slong | 1-тактная |
Описание: операнд R1 загружается в Rrest, после чего перемещается влево на число разрядов, определённых константой R2. Когда в качестве R2 используется регистр, величину сдвига определяют шесть его младших бит. Если 39 < R2 < 64, R1 перемещается влево на 40 разрядов. Освобождающиеся при сдвиге разряды заполняются нулями.
SHR R1,R2,Rrest Арифметический сдвиг вправо
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.S1 или .S2 | xsint slong xsint slong | uint uint ucst5 ucst5 | sint slong sint slong | 1-тактная |
Описание: операнд R1 загружается в Rrest, после чего перемещается вправо на число разрядов, определённых константой R2. Результат расширяется знаком. Когда в качестве R2 используется регистр, величину сдвига определяют шесть его младших бит. Если 39 < R2 < 64, R1 перемещается вправо на 40 разрядов.
SHRU R1,R2,Rrest Логический сдвиг вправо
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.S1 или .S2 | xuint ulong xuint ulong | uint uint ucst5 ucst5 | uint ulong uint ulong | 1-тактная |
Описание: операнд R1 загружается в Rrest, после чего перемещается вправо на число разрядов, определённых константой R2. Результат расширяется нулями. Когда в качестве R2 используется регистр, величину сдвига определяют шесть его младших бит. Если 39 < R2 < 64, R1 перемещается вправо на 40 разрядов.
XOR R1,R2,RresИсключающее ИЛИ
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.L1 или .L2, .S1 или .S2 | uint scst5 | xuint xuint | uint uint | 1-тактная |
Описание: поразрядное исключающее ИЛИ выполняется между R1 и R2. Результат устанавливается в Rres. Константа расширена знаком до 32 бит.
Команды перехода
В R1 Переход
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.S1 или .S2 | метка | нет | нет | переход | Ветвление | |
.S2 | xuint |
Сервисные команды
CLR R1, R2, R3, RresОчистить область бит беззнакового целого
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.S1 или .S2 | uint xuint | ucst15 uint | ucst15 нет | uint uint | 1-тактная |
Описание: область в R1, заданная константами R2 и R3, сбрасывается в ноль, и результат устанавливается в Rres. Константа R2 определяет номер младшего бита (относительно нулевого разряда R1), а константа R3 – номер старшего бита (относительно нулевого разряда R1) области, которая должна очищаться. Константы могут быть определены десятью младшими битами регистра R2, где первая константа является битами с 0 по 4, а вторая – битами с 5 по 9.
ЕХТ R1,R2,R3,Rres Выделение и расширение знаком области бит
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.S1 или .S2 | sint xsint | ucst5 uint | ucst5 нет | sint sint | 1-тактная |
Описание: константами R2 и R3 определяется область в R1. Номер старшего бита области равен разности 31–R2 (первая константа), а номер младшего бита области – разности R3 (вторая константа)–R2 (первая константа). Константы могут быть определены как 10 младших бит регистра R2, где первая константа является битами с 5 по 9, а вторая – битами с 0 по 4. Выделенная область переносится в Rres на то же место, которое она занимает в R1, сдвигается влево на число разрядов, равное первой константе, а затем – вправо на число разрядов, равное второй константе. При сдвигах вправо освобождавшиеся разряды заполняются знаком (старшим разрядом области).
ЕХТU R1,R2,R3,Rres Выделение и расширение нулями области бит
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.S1 или .S2 | uint xuint | ucst5 uint | ucst5 нет | uint uint | 1-тактная |
Описание: всё также как и в команде ЕХТ, но при сдвигах вправо освобождавшиеся разряды заполняются нулём.
SАT R1,Rrest Округление 40-разрядного целого до 32-разрядного
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.S1 или .S2 | slong | нет | sint | 1-тактная |
SET R1,R2,R3,Rrest Установка области бит
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | ||
R1 | R2 | R3 | ||||
.S1 или .S2 | uint xuint | ucst5 uint | ucst5 нет | uint uint | 1-тактная |
Описание: область в R1, определенная константой R2 и константой R3, размещается в Rrest, после чего устанавливается во все единицы. Первая (R2) и вторая (R3) константы определяют (относительно нулевого разряда) номер, соответственно, младшего и старшего разряда области. Константы могут быть определены как десять младших бит регистра R2, причём биты 0 – 4 соответствуют второй константе, а биты 5 – 9 – первой.
ZERO RresОбнуление регистра
Устройство | Тип операндов | Тип результата | Тип команды | Слоты задержки | |
R1 | R2 | ||||
.L1 или .L2, .S1 или .S2, .D1 или .D2 | нет | нет | sint | 1-тактная | |
.L1 или .L2 | нет | нет | slong |
Дата добавления: 2020-10-25; просмотров: 443;