Всего определено… команд, разделенных по категориям:
| Категория | Кол-во |
| С регистрами общего назначения XAR0 – XAR7 | |
| С регистром указателя сегмента памяти данных DP | |
| С регистром указателя стека SP | |
| С регистрами AX (AH, AL) | |
| 16-разрядные с регистрами ACC | |
| 32-разрядные с регистрами ACC | |
| 64-разрядные с регистрами ACC | |
| С регистрами P или XT | |
| Перемножение 16х16 | |
| Перемножение 32х32 | |
| Прямой доступ к памяти | |
| Ввод/вывод | |
| Программная память | |
| Ветвление, вызов, возврат | |
| С регистром прерываний IER | |
| С регистрами статуса ST0, ST1 | |
| Разного назначения | |
| Итого |
· Операции с регистрами XAR0-XAR7
| Мнемоника | Код операции | XARn | Пример | |||
| ADDB XARn, #7bit | 1nnn | 0CCC | CCCC | XARn = XARn + 0:7bit; | ||
| ADRK #8bit | IIII | IIII | XAR(ARP) = XAR(ARP) + 0:8bit; | |||
| CMPR 0 CMPR 1 CMPR 2 CMPR 3 | Сравнение AR0 c AR(ARP) на = > < != | |||||
| MOV AR6,loc16 MOV AR7,loc16 | LLLL | LLLL | AR6/7 = [loc16]; AR6/7H = unchanged; | |||
| MOV loc16,ARn | 1nnn | LLLL | LLLL | [loc16] = ARn; | ||
| MOV XARn,PC | 1nnn | XARn = 0:PC; | ||||
| MOVB AR6,#8bit MOVB AR7,#8bit | CCCC | CCCC | AR6/7 = 0:8bit; AR6/7H = unchanged; | |||
| MOVB XAR0…5, #8bit MOVB XAR6, #8bit MOVB XAR7, #8bit | 0nnn | CCCC | CCCC | XARn = 0:8bit; | ||
| MOVL loc32,XAR0 MOVL loc32,XAR1 MOVL loc32,XAR2 MOVL loc32,XAR3 MOVL loc32,XAR4 MOVL loc32,XAR5 MOVL loc32,XAR6 MOVL loc32,XAR7 | LLLL | LLLL | [loc32] = XARn; | |||
| MOVL XAR0, loc32 MOVL XAR1, loc32 MOVL XAR2, loc32 MOVL XAR3, loc32 MOVL XAR4, loc32 MOVL XAR5, loc32 MOVL XAR6, loc32 MOVL XAR7, loc32 | LLLL | LLLL | XARn = [loc32]; | |||
| MOVL XAR0, #22bit MOVL XAR1, #22bit MOVL XAR2, #22bit MOVL XAR3, #22bit MOVL XAR4, #22bit MOVL XAR5, #22bit MOVL XAR6, #22bit MOVL XAR7, #22bit | 00СС | СССС | СССС СССС СССС СССС | XARn = 0:22bit; В КОП добавлены 16 бит | ||
| MOVZ AR0…5n,loc16 MOVZ AR6,loc16 MOVZ AR7,loc16 | 1nnn | LLLL | LLLL | ARn = [loc16]; ARnH = 0; | ||
| SBRK #8bit | CCCC | CCCC | XAR(ARP) = XAR(ARP) − 0:8bit; | |||
| SUBB XARn, #7bit | 1nnn | 1CCC | CCCC | XARn = XARn − 0:7bit; |
· Операции загрузки регистра DP
Регистр DP содержит адрес памяти данных.
| Мнемоника | Код операции | XARn | Пример | |||
| MOV DP,#10bit | 10СС | СССС | СССС | DP(9:0) = 10bit; DP(15:10) = unchanged; | ||
| MOVW DP,#16bit | СССС СССС СССС СССС | DP(15:0) = 16bit; | ||||
| MOVZ DP,#10bit | 10СС | СССС | СССС | DP(9:0) = 10bit; DP(15:10) = 0; |
· Операции с регистром SP
| Мнемоника | Код операции | XARn | Пример | |||
| ADDB SP,#7bit | 0ССС | СССС | SP = SP + 0:7bit; | |||
| POP ACC | SP −= 2; ACC = [SP]; | |||||
| POP AR1:AR0 | SP −= 2; AR0 = [SP]; AR1 = [SP+1]; AR1H:AR0H = без изменений; | |||||
| POP AR3:AR2 | SP −= 2; AR2= [SP]; AR3 = [SP+1]; AR3H:AR2H = без изменений; | |||||
| POP AR5:AR4 | SP −= 2; AR5 = [SP]; AR4= [SP+1]; AR5H:AR4H = без изменений; | |||||
| POP AR1H:AR0H | SP −= 2; AR0H = [SP]; AR1H = [SP+1]; AR1:AR0 = без изменений; | |||||
| POP DBGIER | SP −= 1; DBGIER = [SP]; | |||||
| POP DP:ST1 | SP −= 2; ST1 = [SP]; DP = [SP+1]; | |||||
| POP DP | SP −= 1; DP = [SP]; | |||||
| POP IFR | SP −= 1; IFR = [SP]; | |||||
| POP loc16 | LLLL | LLLL | SP -= 1; [loc16] = [SP]; | |||
| POP P | SP −= 2; P = [SP]; | |||||
| POP RPC | SP −= 2; RPC = [SP]; | |||||
| POP ST0 | SP −= 1; ST0 = [SP]; | |||||
| POP ST1 | SP −= 1; ST1 = [SP]; | |||||
| POP T:ST0 | SP −= 2; T = [SP]; ST0 = [SP+1]; TL = без изменений; | |||||
| POP XT | SP −= 2; XT = [SP]; | |||||
| POP XAR0 POP XAR1 POP XAR2 POP XAR3 POP XAR4 POP XAR5 POP XAR6 POP XAR7 | SP −= 2; XARn = [SP]; | |||||
| PUSH ACC | [SP] = ACC; SP += 2; | |||||
| PUSH AR0:AR1 PUSH AR3:AR2 PUSH AR5:AR4 | [SP] = AR0; [SP+1] = AR1; SP += 2; | |||||
| PUSH AR3:AR2 | [SP] = AR2; [SP+1] = AR3; SP += 2; | |||||
| PUSH AR5:AR4 | [SP] = AR4; [SP+1] = AR5; SP += 2; | |||||
| PUSH AR1H:AR0H | [SP] = AR0H; [SP+1] = AR1H; SP += 2; | |||||
| PUSH DBGIER | [SP] = DBGIER; SP += 1; | |||||
| PUSH DP:ST1 | [SP] = DP; SP += 1; | |||||
| PUSH DP | [SP] = ST1; [SP+1] = DP; SP += 2; | |||||
| PUSH IFR | [SP] = IFR; SP += 1; | |||||
| PUSH loc16 | LLLL | LLLL | [SP] = [loc16]; SP += 1; | |||
| PUSH P | [SP] = P; SP += 2; | |||||
| PUSH RPC | [SP] = RPC; SP += 2; | |||||
| PUSH ST0 | [SP] = ST0; SP += 1; | |||||
| PUSH ST1 | [SP] = ST1; SP += 1; |
· Операции с регистрами AX (AH, AL)
AX – это части ACC. AH – старшая, AL – младшая. Для них доступны команды с данными не юлее 16 бит.
| Мнемоника | Код операции | XARn | Пример | |||
| ADD AX,loc16 | 010A | LLLL | LLLL | |||
| ADD loc16,AX | ||||||
| ADDB AX,#8bit | ||||||
| AND AX,loc16,#16bit | ||||||
| AND AX,loc16 | ||||||
| AND loc16,AX | ||||||
| ANDB AX,#8bit | ||||||
| ASR AX,1..16 | ||||||
| ASR AX,T | ||||||
| CMP AX,loc16 | ||||||
| CMPB AX,#8bit | ||||||
| FLIP AX | ||||||
| LSL AX,1..16 | ||||||
| LSL AX,T | ||||||
| LSR AX,1..16 | ||||||
| LSR AX,T | ||||||
| MAX AX,loc16 | ||||||
| MIN AX,loc16 | ||||||
| MOV AX,loc16 | ||||||
| MOV loc16,AX | ||||||
| MOV loc16,AX,COND | ||||||
| MOVB AX,#8bit | ||||||
| Мнемоника | Пример |
| ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 =Ист1 + Ист2 |
| AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 =Ист1 + Ист2 |
· Операции с регистрами ACC
Формат команд:
Команда Ист1, Ист2{Сдвиг)
С содержимым Ист1 и Ист2 выполняется команда. Предварительно содержимое Ист2 сдвигается влево на число бит Сдвиг (необязательно)
В качестве Ист1 или Ист2 могут быть:
· ACC – аккумулятор АЛУ.
· loc16 – 16-разрядная ячейка памяти.
· loc32 – 32 разрядная ячейка памяти.
В качестве Ист2 дополнительно могут быть:
· #8bit – 8-разрядное значение.
· #16bit – 16-разрядное значение.
Примеры команд
| Мнемоника | Действие |
| ADD ACC,loc32 {<< 0..16} | Сложение. К ACC добавить содержимое loc32 и перенос. ACC = ACC + [loc32] + C; |
| ADD ACC,loc16 {<< 0..16} | Сложение. К ACC добавить содержимое loc16. if(SXM = 1) //расшир. знака разрешено ACC = ACC + S:[loc16]<<сдвиг else // расшир.знака запрешено ACC = ACC + 0:[loc16]<<сдвиг; |
| ADDB ACC,#8bit | Сложение. К ACC добавить 8-битную константу. ACC = ACC + 0:8bit; |
| SUB ACC,loc16 {<< 0..16} | Вычитание. Из ACC вычесть содержимое loc16. if(SXM = 1) //расшир. знака разрешено ACC = ACC - S:[loc16]<<сдвиг else // расшир.знака запрешено ACC = ACC - 0:[loc16]<<сдвиг; |
| SUBB ACC,#8bit | Вычитание. Из ACC вычесть 8-битную константу. ACC = ACC - 0:8bit; |
| AND ACC,loc16 | ACC = ACC AND 0:[loc16]; |
| AND ACC,#16bit {<< 0..16} | ACC = ACC AND (0:16bit << сдвиг); |
| OR ACC,loc16 | |
| OR ACC,#16bit {<< 0..16} | |
| XOR ACC,loc16 | |
| XOR ACC,#16bit {<< 0..16} | |
· Операции с регистрами P или XT
| Инструкция | Мнемоника | Действие |
| ADDUL | ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 =Ист1 + Ист2 |
| MAXCL | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| MINCL | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| MOV | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MOVA | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MOVAD | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MOVDL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MOVH | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MOVL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MOVP | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MOVS | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MOVX | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| SUBUL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| DMAC | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MAC | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MPY | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MPYA | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MPYB | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MPYS | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MPYU | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| MPYXU | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| SQRA | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| SQRS | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| XMAC | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| XMACD | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| IMACL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| IMPYAL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| IMPYL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| IMPYSL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| IMPYXUL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| QMACL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| QMPYAL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| QMPYSL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| QMPYXUL | ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
· Операции прямого доступа к памяти
| Инструкция | Мнемоника | Действие |
| ADD | ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 =Ист1 + Ист2 |
| AND | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| CMP | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| DEC | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| DMOV | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| INC | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| MOV | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| MOVB | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| OR | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| TBIT | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| TCLR | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| TSET | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| XOR | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
· Операции ввода вывода
| Инструкция | Мнемоника | Действие |
| IN | ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 =Ист1 + Ист2 |
| OUT | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| UOUT | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
· Операции с памятью программ
| Инструкция | Мнемоника | Действие |
| PREAD | ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 =Ист1 + Ист2 |
| PWRITE | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| XWRITE | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| XWRITE | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| XPWRITE | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
· Операции ветвления, вызова, возврата
| Инструкция | Мнемоника | Действие |
| B | ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 =Ист1 + Ист2 |
| BANZ | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| BAR | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| BF | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| FFC | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| IRET | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| LB | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| LC | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| LCR | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| LOOPZ | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| LOOPNZ | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| LRET | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| LRETE | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| LRETR | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| RPT | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| SB | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| SF | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| SBF | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| XB | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| XBANZ | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| XCALL | AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
· Математические
Синтаксис мнемоники команды:
Имя Ист1, Ист2[Сдвиг]
Инструкция может использовать 1 или 2 операнда Ист1, Ист2. Ист1 – это источник первого операнда и приемник результата. Ист2 – это источник второго операнда. Для Ист2 может использоваться предварительная операция сдвига на задаваемое число бит.
Операндами могут быть:
· Регистр аккумулятора.ACC и его части (старшая AX, младшая AL).
· Регистр произведения блока умножителя P и его части (старшая PH, младшая PL).
· Константы 16, 8 или 7 бит.
· Дополнительные регистры XAR общего назначения.
· Содержимое памяти с заданным размещением loc16, loc32.
Пример.
ADD XAR0, XAR3 << 3; Сложение XAR0 со сдвинутым влево на 3 бита XAR3.
Основные команды:
| Мнемоника | Действие |
| ABORTI | Отменить прерывание |
| ABS ACC | Абсолютное значение ACC ACC = Abs(ACC) |
| ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 = Ист1 + Ист2 |
| ADD XARn, #7bit | Добавить константу из 7 бит XARn = XARn + #7bit |
| ADD Ист1, Ист2[Сдвиг] | Добавить Ист1 = Ист1 + Ист2 |
| AND Ист1, Ист2[Сдвиг] | Операция И Ист1 =Ист1 & Ист2 |
| ASR Ист1[Сдвиг] | Арифметический сдвиг вправо Ист1 =Ист1 со сдвигом |
| B Смещение, Условие | Условный переход Переход на (Смещение) при выполнении (Условия) |
| BF Смещение, Условие | Быстрый условный переход Переход на (Смещение) при выполнении (Условия) |
| BANZ Смещение, Ист2 |
· Ветвления
Синтаксис мнемоники команды:
Имя Смещение, Условие
Если условие выполняется, то содержимое счетчика команд меняется на величину (Смещения). Мнемоника проверяемых условий:
| Условие | Объяснение | Проверяемые флаги |
| NEQ | не равно | Z=0 |
| EQ | равно | Z=1 |
| GT | больше | Z=0 и N=0 |
| GEQ | больше или равно (не меньше) | N=0 |
| LT | меньше | N=1 |
| LEQ | меньше или равно (не больше) | Z=1 или N=1 |
| HI | выше | C=1 и Z=0 |
| HIS, C | выше или тоже самое | C=1 |
| LO, NC | ниже, переноса нет | C=0 |
| LOS | ниже или тоже самое | C=0 или Z=1 |
| NOV | нет переполнения. | V=0 |
| OV | переполнение | V=1 |
| NTC | бит теста не установлен | TC=0 |
| TC | бит теста установлен. | TC=1 |
| NBIO | входной сигнал BIO нулевой | BIO=0 |
| UNC | безусловный |
· Основные инструкции для работы с регистрами
| Инструкция. | Мнемоника | Действие |
| ADDB | ADDB XARn, #7bit #7bit - 7-битовая константа без знака | XARn = XARn + #7bit |
| ADRK | ADRK XARn, #8bit #7bit - 8-битовая константа без знака | XARn = XARn + #8bit |
| ADDK | addk (.unit) cst, dst .unit =.S1,.S2 | cst+dst => dst |
| SUB SUBU | sub (.unit) src1, src2, dst .unit =.L1,.L2, S1, S2 | src1=src2 => dst |
| ABS | abs (.unit) src, dst .unit =.L1,.L2 | abs(src) => dst |
| B | b (.unit) label .unit = S1, S2 | |
| CMPEQ | cmpeq (.unit) src1, src2, dst .unit =.L1,.L2 | 1 => dst при src1=src2 |
| CMPGT CMPGTU | cmpgt (.unit) src1, src2, dst .unit =.L1,.L2 | 1 => dst при src1>src2 |
| CMPLT CMPLTU | cmplt (.unit) src1, src2, dst .unit =.L1,.L2 | 1 => dst при src1<src2 |
| MPY MPYU | mpy (.unit) src1, src2, dst .unit =.M1,.M2 | src1*src2 => dst |
| MV | mv (.unit) src, dst .unit =.L1,.L2, S1,.S2,.D1,.D2 | src => dst |
| MVK | mvk (.unit) cst, dst .unit =.S1,.S2 | cst => dst |
| NEG | neg (.unit) src, dst .unit =.L1,.L2,.S1,.S2 | =src => dst |
| NOP | nop | |
| STB STH STW | stb (.unit) src, *+baseR[offserR] .unit =.D1,.D2 | src => baseR[offsetR] |
| LDB LDH LDW | ldb (.unit) *+baseR[offserR], dst .unit =.D1,.D2 | baseR[offsetR] => dst |
| AND | and (.unit) src1, src2, dst .unit =.L1,.L2, S1, S2 | src1 AND src2 => dst |
| OR | or (.unit) src1, src2, dst .unit =.L1,.L2,.S1,.S2 | src1 OR src2 => dst |
| XOR | xor (.unit) src1, src2, dst .unit =.L1,.L2, S1, S2 | src1 XOR src2 => dst |
| NOT | not (.unit) srt, dst .unit =.L1,.L2,.S1,.S2 | |
| SHL | shl (.unit) src2, src1, dst .unit =.S1,.S2 | (src2 на src1) => dst |
| SHR | shr (.unit) src2, src1, dst .unit =.S1,.S2 | (src2 на src1) => dst |
· Основные команды для работы с вещественными числами
| Инструкция | Мнемоника | Действие |
| ABSSP ABSDP | abssp (.unit) src, dst .unit =.S1,.S2 | absdp(src) => dst |
| ADDSP ADDDP | addsp (.unit) src1, src2, dst .unit =.L1,.L2 | src1+src2 => dst |
| SUBSP SUBDP | subsp (.unit) src1, src2, dst .unit =.L1,.L2 | src1+src2 => dst |
| CMPEQSP CMPEQDP | cmpeqsp (.unit) src1, src2, dst .unit =.S1,.S2 | 1 => dst при src1=src2 |
| CMPGTSP CMPGTDP | cmpgtsp(.unit) src1, src2, dst .unit =.S1,.S2 | 1 => dst при src1>src2 |
| CMPLTSP CMPLTDP | cmpltsp (.unit) src1, src2, dst .unit =.S1,.S2 | 1 => dst при src1<src2 |
| MPYSP MPYDP | mpysp (.unit) src1, src2, dst .unit =.M1,.M2 | src1*src2 => dst |
| SPINT | spint (.unit) src, dst .unit =.L1,.L2 | src1 => dst |
| INTSP | intsp (.unit) src, dst .unit =.L1,.L2 | src1 => dst |
| DPINT | dpint (.unit) src, dst .unit =.L1,.L2 | src1 => dst |
| INTDP | intdp (.unit) src, dst .unit =.L1,.L2 | src1 => dst |
| DPSP | dpsp (.unit) src, dst .unit =.L1,.L2 | src1 => dst |
| SPDP | spdp (.unit) src, dst .unit =.L1,.L2 | src1 => dst |
· Листинги программ
Листинг программы показывает исходные инструкции и объектный код, который они производят. Чтобы получить файл листинга, вызовите ассемблер с опцией - L. Листинг печатается постранично. Незаполненную строку и строку заголовка, имеют наверху каждая страница распечатки. Любой заголовок, определенный.title директивой, печатается в строке заголовка. Номер страницы печатается справа от заголовка. Если Вы не используете.title директиву, печатается имя исходного файла. Ассемблер вставляет незаполненную строку ниже строки заголовка.
Каждая строка в исходном файле создает, по крайней мере, одну строку в файле листинга. Она содержит в порядке слева направо номер исходной инструкции, значение SPC, объектный код, и исходную инструкцию..
Пример показывает листинг ассемблера.







