SHENZHEN I/O

SHENZHEN I/O

Not enough ratings
Техническая документация
By Gestar
Базовое руководство
2
3
   
Award
Favorite
Favorited
Unfavorite
Инструкция "Операнды"
Для каждого типа инструкций требуется фиксированное количество операндов.

Если с инструкцией связаны какие-либо операнды, они должны отображаться после имени инструкции, разделенные пробелами.

В интересах повышения производительности в области развития, система программирования MCxxxx не требует использования избыточной пунктуации для разделения операндов команд.

Операнды команд описываются со следующими обозначениями:

R
Регистр
I
Целое (тип данных) {1}
R/I
Регистр или Целое {1}
P
Pin регистр (p0, p1, etc.)
L
Label (Метка) {2}

{1} Целочисленные значения должны находиться в диапазоне -999 до 999.
{2} Labels (Метки), используемые в качестве операндов, должны быть определены в другом месте программы.
Основные Инструкции
nop - эта инструкция не имеет никакого эффекта.
mov R/I R - копирование значения первого операнда во второй операнд.
jmp L - переход к инструкции, следующей за указанной меткой.
slp R/I - спящий режим для количества единиц времени, указанных операндом.
slx P - спящий режим, пока данные не станут доступны для чтения на выводе XBus, указанном операндом.
Арифметические инструкции
Регистры могут хранить целочисленные значения в диапазоне от -999 до 999 включительно. Если арифметическая операция приведет к результату за пределами этого диапазона, вместо этого сохраняется ближайшее допустимое значение. Например, если acc содержит значение 800 и выполняется инструкция add 400, то значение 999 будет сохранено в acc.

add R/I - Добавление значения первого операнда к значению регистра acc и сохраните результат в регистре acc.

Пример: "add 5" - это значит добавить 5 к значению в acc.

sub R/I - Вычитание значения первого операнда из значения регистра acc и сохраните результат в регистре acc.

Пример: "sub 5" - это значит вычесть 5 из acc и сохранить результат в acc.

mul R/I - Умножить значение первого операнда на значение регистра acc и сохраните результат в регистре acc.

Пример: "mul 5" - это значит 5 умножить на acc и сохранить результат в acc.

not - Если значение в acc равно 0, сохранить значение 100 в acc. В противном случае сохранить значение 0 в acc.

Пример: "not" - команда позволяет менять значение acc с 0 на 100 и наоборот. Может применяться, например, когда нужно менять силу сигнала с on на off.

dgt R/I - Изолировать указанную цифру значения в регистре acc и сохраните результат в регистр acc.

Пример:

ACC
инструкция
ACC
596
dgt 0
6
596
dgt 1
9
596
dgt 2
5

dst R/I R/I - Заменить порядковую цифру acc, указанную первым операндом, значением второго операнда.

Пример:

ACC
инструкция
ACC
596
dgt 0 7
597
596
dgt 1 7
576
596
dgt 2 7
796

gen P X Y - где P - регистр, X - количество сна, Y - количество сна. Инструкция подходит для отправки сигнала силой 100 на P, интервалом сна X, отправкой сигнала силой 0 и интервалом сна Y.

Пример:
mov 100 P
slp X
mov 0 P
slp Y
Инструкции сравнения
Инструкции сравнения полезны тем, что в зависимости от выполнения условий или нет, можно при помощи "+" и "-" задать разное выполнение.

Например, есть число 5 и число 6, если эти значения равны то выполняется инструкция "+", если нет то "-".

Пример:
teq 5 6
+ если значения равны
- если значения не равны


Подробнее ниже:

teq R/I R/I - Проверка, равно ли значение первого операнда (A) значению второго операнда (B).

Пример:

Состояние
Если "+", то;
Если "-", то
A равно B
Активно
Пассивно
A не равно B
Пассивно
Активно

tgt R/I R/I - Проверка, больше ли значение первого операнда (A) значения второго операнда (B).

Пример:

Состояние
Если "+", то;
Если "-", то
A больше B
Активно
Пассивно
A не больше B
Пассивно
Активно


tlt R/I R/I - Проверка, меньше ли значение первого операнда (A) значения второго операнда (B).

Пример:

Состояние
Если "+", то;
Если "-", то
A меньше B
Активно
Пассивно
A не меньше B
Пассивно
Активно

tcp R/I R/I - Сравните значение первого операнда (A) со значением второго операнда (B).

Пример:

Состояние
Если "+", то;
Если "-", то
A больше B
Активно
Пассивно
A равно B
Пассивно
Пассивно
A меньше B
Пассивно
Активно