Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metoda_beta2_8.doc
Скачиваний:
5
Добавлен:
16.11.2019
Размер:
838.66 Кб
Скачать

5. Команды пересылки данных

Данные инструкции реализуют пересылки данных типа регистр – регистр, регистр – память, память – регистр.. Регистры условно разделены на 2 группы, первая из которых обозначается reg и включает практически все программно доступные регистры, а вторая, обозначаемая dreg, – только регистры данных (регистры вычислительных устройств), являясь подмножеством первой. Лишь регистр PC (указатель инструкции) и регистры обратной связи ALU и MAC (AF и MF) недоступны для инструкций пересылки данных. Примеры таких инструкций:

reg=reg; reg=<data>; reg=DM(<addr>); dreg=PM(In, Mn);

AX0 = DM (I0, M0);

6. Инструкции управления исполнением программы

К командам данной группы относятся инструкции перехода JUMP, вызова подпрограмм CALL, возврата из подпрограмм RTS и прерываний RTI, цикла DO UNTIL, а также инструкция ожидания IDLE.

Вариации инструкций перехода JUMP и вызова CALL обобщенно могут быть представлены в следующем виде:

[IF cond] JUMP | CALL (In) | <addr>; n=4 - 7.

Примеры таких инструкций:

If eq jump my_label; call (i6);

my_label здесь – это любой идентификатор или метка, определяющая адрес перехода. Вместо метки можно использовать также индексный регистр DAG2 (I4I7). Если используется условие проверки счетчика CNTR (NOT СЕ), он должен быть предварительно инициализирован инструкцией CNTR. С инструкциями JUMP и CALL (но только с непосредственной адресацией) допускаются дополнительные условные выражения IF FLAG_IN и IF NOT FLAG_IN, зависящие от состояния линии FI.

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

Усовершенствованная версия команды IDLE (n) позволяет замедлять внутреннюю тактовую частоту процессора в n раз, также уменьшая потребление энергоресурсов. Значения n могут быть 16, 32, 64 или 128. При выполнении данной команды процессор остается полностью работоспособным, но работает с меньшей внутренней тактовой частотой. В той же степени уменьшаются и частоты всех остальных внутренних тактовых сигналов, например SCLK, CLKOUT, тактовых синхроимпульсов таймера. Увеличивается также время реакции (ответа) процессора на запросы прерывания.

При отсутствии значения делителя n в команде IDLE по умолчанию выполняется ее стандартная версия.

Инструкция цикла DO UNTIL обобщенно описывается выражением:

DO <addr> [UNTIL term];

где <addr> – метка конца цикла, termодно из условий завершения цикла.

Следует обратить внимание, что возможен также вариант безусловной инструкции DO <addr> (без UNTIL), задающей бесконечный цикл.

7. Другие инструкции и команды не вошедшие в

сводную таблицу

Данная группа включает такие инструкции, как NOP (пустая операция), PUSH/POP (операции со стеками), ENA, DIS (разрешить, запретить), MODIFY, SET, RESET и TOGGLE. Последние три инструкции управляют выходами FO (Flag Out), обеспечивая внешние коммуникации процессора.

За командами ENA (ENable – разрешить) и DIS (DISable – запретить) может следовать любое количество идентификаторов режимов работы процессора, разделенное запятыми. Все семь режимов, которые могут быть установлены или сброшены в одной инструкции, находятся в регистре MSTAT.

Инструкция MODIFY модифицирует адрес, находящийся в

I-регистре, значением, хранящемся в М-регистре, без реального доступа к памяти.

В группе команд ALU в инструкциях сложения, вычитания и в инструкциях AND, OR, XOR, PASS вместо операнда yop может быть использована одна из предопределенных констант 2n, -(2n +1), 32767, -32768, где n=0, 1, 2, … , 14. Возможны также битовые операции-проверки, установки, сброса и переключения бита, выполняемые с помощью инструкций:

[IF cond] AR | AF=TSTBIT | SETBIT | CLRBIT | TGLBIT n OF xop;

где n = 0-15, например, AR=SETBIT 8 OF AXO;

В группе команд MAC допустимы операции, где в качестве второго операнда yop используется операнд xop, т. е. типа xop*xop. Это позволяет выполнять возведение в квадрат и накопление сумм квадратов за один цикл, например:

MR=MX0*MX0; MR=MR+MX1*MX1;

В группе команд пересылки данных имеются инструкции записи и считывания области памяти ввода/вывода:

IO(<addr>) = dreg; dreg = IO(<addr>);

где <addr> - 11-разрядный адрес ячейки памяти ввода/вывода.

В группе других команд введены инструкции разрешения/блокирования всех прерываний без изменения содержимого регистра IMASK: ENA INTS; DIS INTS;.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]