#### Перечисление типов команд

1. **Перемещение данных**
   - Сохранить в регистре заданное константное значение: MOV 123, R0.
   - Скопировать значения из памяти в регистр, или из регистра в память, или из регистра в регистр: LD [Addr], R0; ST R0, [Addr]; MOV R0, R1.
   - Чтение и запись данных с/на устройство ввода-вывода: OUT R0, IOPort1; IN IOPort2, R1.

2. **Арифметико-логические операции**
   - Сложить, вычесть, умножить, разделить: ADD R0, R1, R2; SUB, MUL, DIV, FADD, FSUB, FMUL, FDIV.
   - Побитовые операции: AND R0, R1, R2; NOT, OR, XOR, SHL, SHR, SAR, ROL, ROR, BT.
   - Сравнение двух значений: CMP R0, R1.

3. **Управление порядком выполнения программы**
   - Безусловный переход: JMP [Addr].
   - Условный переход: JE [Addr]; JE (Equal), JNE (Not Equal), JG (Greater), JGE (Greater Equal), JL (Less), JLE (Less Equal), JZ (Zero).
   - Вызов функции: PUSH R0; CALL [AddrFunc]; POP R0; RET.