Высшие команды - PenzaStreetGames/Yo GitHub Wiki
Высшие команды виртуальной машины - команды, которые отвечают за предоставление интерфейса к ленте памяти, но не описывают реализацию обработки данных. Проще говоря, высшие команды - это специальный ассемблер, а низшие команды - это мнимые микросхемы процессора, выполняющие ассемблерные команды. Для обозначения высших команд используется английское слово либо словосочетание, а также трёхбуквенное сокращение, например Jump if, Jif.
Переходы
0 End (End)
- Аргументов нет.
- Заканчивает выполнение программы.
1 Jmp (Jump)
- Аргументы:
- Ссылка для перехода
- Безусловный переход
2 Jif (Jump if)
- Аргументы:
- Ссылка для перехода
- Ссылка на условие
- Условный переход
Работа с объектами
3 Crt (Create)
- Аргументы:
- Объект для создания
- Создаёт объект в памяти
4 Fnd (Find)
- Аргументы:
- Ссылка на строку с именем
- Находит объект в пространстве имён
5 Eqt (Equating)
- Аргументы:
- Ссылка на приёмник
- Ссылка на источник
- Приравнивает два объекта
6 Len (Length)
- Аргументы:
- Ссылка на объект
- Возвращает размер объекта
7 Sob (Sub object)
- Аргументы:
- Ссылка на объект
- Ссылка на подобъект
- Считывает ячейку с относительным адресом
Ввод/вывод
8 Inp (Input)
- Аргументов нет
- Ввод данных
9 Out (Output)
- Аргументы:
- Ссылка на вывод
- Вывод данных
Работа со стеком
10 Psh (Push)
- Аргументы:
- Ссылка на источник
- Записывает ячейку в стек
11 Pop (Pop)
- Аргументы:
- Ссылка на приёмник
- Вынимает ячейку из стека
12 Cal (Call)
- Аргументы:
- Ссылка на функцию
- Вызывает функцию
13 Ret (Return)
- Аргументов нет
- Возвращает управление из функции
Логические операции
14 Not (Not)
- Аргументы:
- Ссылка на аргумент
- Логическое НЕ
15 And (And)
- Аргументы:
- Ссылка на левый аргумент
- Ссылка на правый аргумент
- Логическое И
16 Or (Or)
- Аргументы:
- Ссылка на левый аргумент
- Ссылка на правый аргумент
- Логическое ИЛИ
17 Xor (Xor)
- Аргументы:
- Ссылка на левый аргумент
- Ссылка на правый аргумент Логическое ЛИБО
Арифметические операции
18 Neg (Negative)
- Аргументы:
- Ссылка на аргумент
- Инверсия
19 Add (Addition)
- Аргументы:
- Ссылка на левый аргумент
- Ссылка на правый аргумент
- Сложение
20 Inc (Increment)
- Аргументы:
- Ссылка на аргумент
- Увеличение на один
21 Dcr (Decrement)
- Аргументы:
- Ссылка на аргумент
- Уменьшение на один
22 Sub (Subtraction)
- Аргументы:
- Ссылка на уменьшаемое
- Ссылка на вычитаемое
- Вычитание
23 Mul (Multiplication)
- Аргументы:
- Ссылка на левый множитель
- Ссылка на правый множитель
- Умножение
24 Div (Division)
- Аргументы:
- Ссылка на делимое
- Ссылка на делитель
- Деление
25 Mod (Modulo)
- Аргументы:
- Ссылка на делимое
- Ссылка на делитель
- Остаток от деления
Операции сравнения
26 Eql (Equal)
- Аргументы:
- Ссылка на левый аргумент
- Ссылка на правый аргумент
- Сравнение на равенство
27 Grt (Great)
- Аргументы:
- Ссылка на левый аргумент
- Ссылка на правый аргумент
- Больше
28 Les (Less)
- Аргументы:
- Ссылка на левый аргумент
- Ссылка на правый аргумент
- Меньше
Прочее
29 Ничего Nop (No operation)
- Аргументов нет
- Ничего не делает