; комментарий до конца строки
{ многострочный комментарий}
Название_метки:Метка может находиться только в начале строки.
Название_команды аргумент1 аргумент2 ... аргументNПример1:
; comment label: mov reg1 reg2 ;mov reg2 to reg1 { creating tree } crtree 100 reg1Пример 2:
mov r1 "Hello, World!" prn [r1] ; напечатает "Hello, World!" prn r1 ; напечатает символ в кодом 0
Название команды | Аргументы команды | Описание команды |
mov | dest src | Скопировать значение источника в приемник |
prn | str | Напечатать строку на stdout |
xchg | reg1 reg2 | Обменять значения регистров местами |
push | value | Положить значение в стек |
pop | reg | Вытолкнуть значение из стека |
Название команды | Аргументы команды | Описание команды |
add | dest src | Сложение |
sub | dest src | Вычитание |
mul | dest src | Умножение |
div | dest src | Деление |
mod | dest src | Остаток от деления |
shr | dest value | Сдвиг вправо |
shl | dest value | Сдвиг влево |
neg | dest | Получение противоположного числа |
inc | dest | Инкремент |
dec | dest | Декремент |
and | dest src | Побитовое И |
or | dest src | Побитовое ИЛИ |
xor | dest src | Побитовое исключающее ИЛИ |
not | dest | Побитовый инкремент |
Название команды | Аргументы команды | Описание команды |
je | label | Перейти, если равно |
jne | label | Перейти, если не равно |
jl | label | Перейти, если меньше |
jle | label | Перейти, если меньше или равно |
jg | label | Перейти, если больше |
jge | label | Перейти, если больше или равно |
jnl | label | Перейти, если не меньше |
jng | label | Перейти, если не больше |
jmp | label | Перейти безусловно |
call | label | Перейти и положить в стек адрес возврата |
ret | Вернуться по адресу на вершине стека | |
cmp | value1 value2 | Сравнить 2 числа |
exit | Прервать выполнение программы | |
nop | Пустая операция |
Название команды | Аргументы команды | Описание команды |
scat | dest src | Конкатенация строк |
scmp | str1 str2 | Сравнение строк |
sind | str index | Получение символа в строке |
slen | str | Получение длины строки |
movs | dest src | Загрузка строки |
Название команды | Аргументы команды | Описание команды |
crtree | nodecnt attrcnt | Создание дерева с ... |
rmtree | Удаление активного дерева | |
gettc | Получение количества деревьев | |
actree | index | Активация дерева |
getactree | Получение номера активного дерева в теблице деревьев | |
getrt | Получение корня активного дерева | |
getcc | index | Получение количества детей |
getdc | index | Получение количества всех потомков |
getc | indexc index | Получение ребенка |
getp | index | Получение родителя |
addc | indexc indexp | Добавление нового ребенка |
rmn | index | Удаление узла |
addatt | index name value | Добавление атрибута |
rmatt | index name value | Удаление атрибута |
getatt | index name | Получение атрибута |
getac | index | Получение количества атрибутов |
xchgn | index1 index2 | Перестановка узлов дерева |
sntree | Заполнить поля с дополнительной информацией об узле | |
gct | index | Собрать мусор в дереве с указанным номером |
Результат команд записывается в регистр r1, в случае ошибки в этот же регистр посылается -1