Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lek2013 / Lek10_FPGA.docx
Скачиваний:
79
Добавлен:
31.05.2015
Размер:
1.97 Mб
Скачать

Команды перехода

Данная группа команд позволяет выполнять безусловные и условные переходы. Это дает возможность организовать циклы и ветвления в программе.

Безусловный переход по указанной метке выполняется при помощи команды 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

Соседние файлы в папке Lek2013