COP Мнемокод Название Действие 00 NOP Пустая операция Нет 01 IN Ввод Acc ← IR 02 OUT Вывод OR ← Асc 03 IRET Возврат из прерывания FLAGS.PC ← M(SP); INC(SP) 04 WRRB Загрузка RB RB ← CR[ADR] 05 WRSP Загрузка SP SP ← CR[ADR] 06 PUSH Поместить в стек DEC(SP); M(SP) ← R 07 POP Извлечь из стека R → M(SP); INC(SP) 08 RET Возврат PC → M(SP); INC(SP) 09 HLT Стоп Конец командных циклов 10 JMP Безусловный переход PC ← CR[ADR] 11 JZ Переход, если 0 if Acc = 0 then PC ← CR[ADR] 12 JNZ Переход, если не 0 if Асc ≠ 0 then PC ← CR[ADR] 13 JS Переход, если отрицательно if Acc < 0 then PC ← CR[ADR] 14 JNS Переход, если положительно if Acc > 0 then PC ← CR[ADR] 15 JO Переход, если переполнение if |Acc| > 99999 then PC ← CR[ADR] 16 JNO Переход, если нет переполнения if |Acc| < 99999 then PC ← CR[ADR] 17 JRNZ Цикл DEC(R); if R ≠ 0 then PC ← CR[ADR] 18 INT Программное прерывание DEC(SP); M(SP) ← FLAGS.PC; PC ← M(V) 19 CALL Вызов подпрограммы DEC(SP); M(SP) ← PC; PC ← CR(ADR) 20 Нет 21 RD Чтение Acc ← DD 22 WR Запись M(*) ← Acc 23 ADD Сложение Acc ← Acc + DD 24 SUB Вычитание Acc ← Acc - DD 25 MUL Умножение Acc ← Acc * DD 26 DIV Деление Acc ← Acc/DD 27 Нет 28 EI Разрешить прерывание IF ← l 29 DI Запретить прерывание IF ← 0 30 MOV Пересылка R1 ← R2 31 RD Чтение Acc ← R* 32 WR Запись R* ← Acc 33 ADD Сложение Acc ← Acc + R* 34 SUB Вычитание Acc ← Acc - R* 35 MUL Умножение Acc ← Acc * R* 36 DIV Деление Acc ← Acc / R* 37 IN Ввод Acc ← BУ(CR[ADR*]) 38 OUT Вывод BУ(CR[ADR*]) ← Acс 39 Нет 40 Нет 41 RDI Чтение Acс ← I 42 Нет 43 ADI Сложение Асс ← Асс + I 44 SBI Вычитание Асс ← Асс – I 45 MULI Умножение Асс ← Асс * I 46 DIVI Деление Асс ← Асс / I
Это перечисление мнемокодов процессора. А основная фишка ассемблера в макрокомандах, которые самому программисту надо написать, правильно оформить и использовать. И ещё много чего, вроде распределения памяти, ...
00 NOP Пустая операция Нет
01 IN Ввод Acc ← IR
02 OUT Вывод OR ← Асc
03 IRET Возврат из прерывания FLAGS.PC ← M(SP); INC(SP)
04 WRRB Загрузка RB RB ← CR[ADR]
05 WRSP Загрузка SP SP ← CR[ADR]
06 PUSH Поместить в стек DEC(SP); M(SP) ← R
07 POP Извлечь из стека R → M(SP); INC(SP)
08 RET Возврат PC → M(SP); INC(SP)
09 HLT Стоп Конец командных циклов
10 JMP Безусловный переход PC ← CR[ADR]
11 JZ Переход, если 0 if Acc = 0 then PC ← CR[ADR]
12 JNZ Переход, если не 0 if Асc ≠ 0 then PC ← CR[ADR]
13 JS Переход, если отрицательно if Acc < 0 then PC ← CR[ADR]
14 JNS Переход, если положительно if Acc > 0 then PC ← CR[ADR]
15 JO Переход, если переполнение if |Acc| > 99999 then
PC ← CR[ADR]
16 JNO Переход, если нет переполнения if |Acc| < 99999 then
PC ← CR[ADR]
17 JRNZ Цикл DEC(R); if R ≠ 0 then
PC ← CR[ADR]
18 INT Программное прерывание DEC(SP); M(SP) ← FLAGS.PC;
PC ← M(V)
19 CALL Вызов подпрограммы DEC(SP); M(SP) ← PC; PC ← CR(ADR)
20 Нет
21 RD Чтение Acc ← DD
22 WR Запись M(*) ← Acc
23 ADD Сложение Acc ← Acc + DD
24 SUB Вычитание Acc ← Acc - DD
25 MUL Умножение Acc ← Acc * DD
26 DIV Деление Acc ← Acc/DD
27 Нет
28 EI Разрешить прерывание IF ← l
29 DI Запретить прерывание IF ← 0
30 MOV Пересылка R1 ← R2
31 RD Чтение Acc ← R*
32 WR Запись R* ← Acc
33 ADD Сложение Acc ← Acc + R*
34 SUB Вычитание Acc ← Acc - R*
35 MUL Умножение Acc ← Acc * R*
36 DIV Деление Acc ← Acc / R*
37 IN Ввод Acc ← BУ(CR[ADR*])
38 OUT Вывод BУ(CR[ADR*]) ← Acс
39 Нет
40 Нет
41 RDI Чтение Acс ← I
42 Нет
43 ADI Сложение Асс ← Асс + I
44 SBI Вычитание Асс ← Асс – I
45 MULI Умножение Асс ← Асс * I
46 DIVI Деление Асс ← Асс / I