Команды перехода
Данная группа команд позволяет выполнять безусловные и условные переходы. Это дает возможность организовать циклы и ветвления в программе.
Безусловный переход по указанной метке выполняется при помощи команды JUMP.
Если требуется выполнить условный переход то добавляется суффикс:

Пример:
start:
LOAD sa,20
loop:
SUB sa,01
COMPARE sa,05
JUMP NZ, loop
JUMP start
В данном примере организуется цикл с отрицательным шагом. Переменная цикла хранится в регистре SA и изменяется от 32 до 5.
Команды работы со сверхоперативным ОЗУ
Внутри ядра организовано 64 байтное ОЗУ. Адресация ОЗУ начинается с нуля.
Пример:
STORE sA, 4 - запись содержимого регистра sa по адресу 04
FETCH sA, 4 - считывание из ячейки по адресу 04 в регистр
Пример:
start:
LOAD sA, 32
LOAD S5,10
STORE sA, S5 ; записали содержимое регистра sA=32 в адрес 10
FETCH sA, 4 ; прочитали из ОЗУ содержимое по адресу 04
JUMP start
Команды ввода \вывода
Данная группа команд позволяет установить заданное двоичное значение на выходном восьмиразрядном порту OUT_Port, либо считать восьмиразрядное число на входе IP_Port. Для работы с несколькими периферийными блоками на выходе PORT_ID устанавливается номер порта, для которого выполняется ввод или вывод.
Команда вывода
OUT регистр, номер порта
Команда ввода
IN регистр , номер порта
Здесь первый параметр – это регистр из которого считывается или в который записывается значение. Номер порта –это то значение, которое будет установлено на выходе PORT_ID.
Пример программы
start:
LOAD sA, 32
loop:
SUB sA, 01;
OUTPUT SA,55
COMPARE sA, 05
JUMP NZ, loop
JUMP start
Пример эквивалентной программы для эмулятора pBlazeIDE
DSIO $55
start:
LOAD sA, 32
loop:
SUB sA, 1
OUT SA,$55
COMP sA, 5
JUMP NZ, loop
JUMP start
Команды вызова подпрограмм
CALL - вызов подпрограммы, при этом значение счетчика команд PC записывается в стек адресов.
RETURN – возврат подпрограммы, выполняет запись в счетчик команд значения из стека адресов.
Стек адресов может хранить до 32 значений, т.е. глубина вызова подпрограмм равна 32.
К командам вызова и возврата из подпрограмм, как и к команде перехода JUMP, может применяться суффикс условного выполнения (C, NC, Z, NZ).
Передача параметров в подпрограмму осуществляется через регистры общего назначения.
Пример
start:
LOAD sA, 32
loop:
SUB sA, 01;
CALL MyOut
COMPARE sA, 05
JUMP NZ, loop
JUMP start
MyOut:
OUTPUT SA,55
RETURN
