Команды виртуальной машины
GET_VM_VERSION
Формат: GET_VM_VERSION
Кладет на вершину стека числовое значение - версию спецификации реализуемую кодом.
JMP (безусловный переход)
Формат: JMP <метка>
Заносит в регистр pc номер команды, указанной меткой.
JMP_TRUE (условный переход)
Формат: JMP_TRUE <метка>
Берет с вершины стека значение типа boolean. Если оно равно true - заносит в регистр pc номер команды, указанной меткой.
JMP_FALSE (условный переход)
Формат: JMP_FALSE <метка>
Берет с вершины стека значение типа boolean. Если оно равно false - заносит в регистр pc номер команды, указанной меткой.
SKIP_TRUE (условный пропуск команды)
Формат: SKIP_TRUE
Берет с вершины стека значение типа boolean. Если оно равно true - увеличивает значение регистра pc на 1.
SKIP_FALSE (условный пропуск команды)
Формат: SKIP_FALSE
Берет с вершины стека значение типа boolean. Если оно равно false - увеличивает значение регистра pc на 1.
CALL (вызов подпрограммы)
Формат: CALL <метка> <количество аргументов>
Сохраняет в стеке значение регистра
pc(с типомInt)Сохраняет в стеке значение регистра
bp(с типомInt)Сохраняет в стеке значение <количество аргументов> (с типом
Int)Заносит в регистр
bp- указатель на вершину стекаЗаносит в регистр
pcномер команды, указанной меткой.
RETURN (возврат из подпрограммы)
Формат: RETURN
Снимает с вершины стека значение
Удаляет с вершины стека все значения после указанного регистром
bpСнимает с вершины стека значение (с типом
int)Снимает с вершины стека значение (с типом
int) и заносит его в регистрbpСнимает с вершины стека значение (с типом
int) и заносит его в регистрpcУдаляет с вершины стека элементы количеством равным значению из п.п. 3
Кладет на вершину стека значение полученное в п.п. 1
ARGUMENT (получение значения аргумента)
Формат: ARGUMENT <номер аргумента>
Кладет на вершину стека значение взятое из стека (без удаления) с конца со смещением равным bp - <номер аргумента> - 3
AND (логическое И)
Формат: AND
Снимает с вершины стека 2 значения (типа boolean) и кладет обратно на вершину стека результат логической операции И.
OR (логическое ИЛИ)
Формат: OR
Снимает с вершины стека 2 значения (типа boolean) и кладет обратно на вершину стека результат логической операции ИЛИ.
XOR (логическое исключающее ИЛИ)
Формат: XOR
Снимает с вершины стека 2 значения (типа boolean) и кладет обратно на вершину стека результат логической операции XOR.
NOT (логическое отрицание)
Формат: NOT
Снимает с вершины стека 1 значение (типа boolean) и кладет обратно на вершину стека результат логической операции NOT.
LESS (сравнение)
Формат: LESS
Снимает с вершины стека 2 значения (типа int) и кладет обратно на вершину стека результат их сравнения.
MORE (сравнение)
Формат: MORE
Снимает с вершины стека 2 значения (типа int) и кладет обратно на вершину стека результат их сравнения.
EQUAL (сравнение)
Формат: EQUAL
Снимает с вершины стека 2 значения (типа int) и кладет обратно на вершину стека результат их сравнения.
DEFINE_BITMAP (создание изображения)
Формат: DEFINE_BITMAP <идентификатор изображения> <ширина> <высота>
Создает в рабочем списке объектов bitmap новый объект с указанными значениями идентификатора и размерами.
STORE (ввод значения)
Формат: STORE "<строка>"
Сохраняет на вершине стека значение <строка> (типа string) (без символов ")
DROP (удаление значения)
Формат: DROP
Снимает с вершины стека одно значение.
DUP (копирование значения)
Формат: DROP
Снимает с вершины стека одно значение и кладет его обратно дважды.
SWAP (обмен значений на вершине стека)
Формат: SWAP
Снимает с вершины стека два значения и кладет их в обратном порядке.
SELECT (выбор)
Формат: SELECT <onTrue>" "<onFalse>"
Снимает с вершины стека значение (типа boolean) и, если оно равно true - кладет на вершину стека <onTrue>, иначе <onFalse>
STATUS (получение статуса)
Формат: STATUS <id>
Кладет на вершину стека значение статуса (типа boolean) c указанным <id>.
FETCH_BITMAP_INTO (загрузка фрагмента изображения)
Формат: STATUS <id>
Снимает с вершины стека значение (типа string) и загружает указанный в дескрипторе файл с идентификатором равным значению, снятому с вершины стека, в рабочий объект bitmap с идентификатором <id>
COLORIZE_BITMAP (замена цвета)
Формат: COLORIZE_BITMAP <id> <hue> <saturation> <lightness> <delta>
Заменяет цвет, указанный значениями <hue>, <saturation>, <lightness>, <delta> в рабочем объекте bitmap и идентификатором id на цвет, полученный из API МП.
BLEND_BITMAP (наложение изображения)
Формат: BLEND_BITMAP <source> INTO <target>
Накладыват изображение рабочего объекта bitmap с идентификатором <source> на изображение рабочего объекта bitmap с идентификатором target с учетом прозрачности изображений.
RETURN_BITMAP (завершение работы)
Формат: RETURN_BITMAP <id>
Завершает выполнение скрипта. Как результат всей работы принимается изображение, содержащееся в рабочем объекте bitmap с идентификатором <id>. Все остальные рабочие объекты bitmap удаляются.
FORMAT (форматирование строки)
Формат: FORMAT <num> <строка>
Снимает с вершины стека <num> значений. Заменяет в строке <строка> специально оформленные метки на значения, снятые со стека. Полученная строка кладется обратно на вершину стека.
Метка | Действие |
|---|---|
%s | заменяет на строковое значение |