Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭиСХ_ADSP21xx_1-2ред.doc
Скачиваний:
13
Добавлен:
13.11.2019
Размер:
916 Кб
Скачать
☆
    1. Команды передачи управления в программе

Команды этой группы, имеющие общепринятые мнемонические обозначения, приведены ниже:

  • команда [условного] перехода [IF условие] JUMP <dest>;

  • вызов подпрограммы [IF условие] CALL <dest>;

  • возврат из подпрограммы [IF условие] RTS;

  • прерывание [IF условие] RTI;

  • переход по флагу [IF <флаг-условие>] JUMP <адрес>;

  • вызов подпрограммы по флагу [IF <флаг-условие>] СALL <адрес>;

где IF условие − арифметическое условие;

<dest> = [(I4), (I5), (I6), (I7), <адрес>];

флаг-условие − [Not] FLAG_IN − может устанавливаться и сбрасываться с помощью специальных команд SET и RESET.

Кроме указанных команд, имеется команда организации циклов.

DO метка UNTIL условие;

{тело цикла}

метка: последняя команда,

где условие − арифметическое условие обнуления СЕ счетчика цикла CNTR.

метка − символический адрес последней команды цикла.

Используемые в командах управления последовательностью выполнения программ коды условий приведены в табл. 9.

Таблица 9

Коды условий

Синтаксис

Условие состояния

Истинно, если

EQ

Равно нулю

AZ=1

NE

Не равно нулю

AZ=0

LT

Меньше нуля

AN.XOR.AV=1

GE

Больше или равно нулю

AN.XOR.AV=0

LE

Меньше или равно нулю

(AN.XOR.AV).OR.AZ=1

GT

Больше нуля

(AN.XOR.AV).OR.AZ=0

AC

Перенос в АЛУ

AC=1

NOT AC

Нет переноса в АЛУ

AC=0

AV

Переполнение в АЛУ

AV=1

NOT AV

Нет переполнения в АЛУ

AV=0

MV

Переполнение в умножителе-накопителе

MV=1

NOT MV

Нет переполнения в умножителе-накопителе

MV=0

NEG

Операнд Х последней команды АВS был отрицательным

AS=1

POS

Операнд Х последней команды АВS был положительным

AS=0

NOT CE

Счетчик не пуст

−

FLAG_IN*

Значение на выводе FI

Последнее значение на выводе FI=1

NOT FLAG_IN*

Значение на выводе FI

Последнее значение на выводе FI=0

* Только в командах JUMP и CALL.

    1. Многофункциональные команды

Имеется возможность объединять в одной команде две или три операции, соответствующие простым командам, рассмотренным ранее. Существует две основные структуры многофункциональных команд.

Структура 1

Вычислительная операция Считывание данных

ПД → Рг АЛУ, УМН

и ПП → Рг,

где ПД – память данных, Рг – регистры, ПП – память программ, УМН – умножитель.

При использовании данной структуры существуют следующие ограничения:

  • недопустима операция деления в АЛУ;

  • обращение к ПД только через генератор адреса #1, а к ПП − через генератор адреса #2;

  • считывание из ПД только в МХ, АХ, а из ПП − в МY, АY;

  • результат вычисления записывается только в AR и MR.

Структура 2

Вычислительная операция Считывание данных

АЛУ, УМН, УСД Рг ←→ Рг

или Рг ←→ ПД

или Рг ←→ ПП,

где УСД – устройство сдвига.

Примеры многофункциональных команд:

AR = AX0 ‑ АY1, АХ1 = DM(I1, M3);

MR = MR + MR0 * МY1(SS), АХ1 = MR0;

SR = SR OR LSHIFT MR2(HI), MX1 = PM(I6, M6);

При использовании второй структуры существуют следующие ограничения:

  • недопустимы операции деления в АЛУ и непосредственный сдвиг (SE) в устройстве сдвига;

  • допускается использовать только вычислительные регистры (АХ, АY и другие);

  • обращение к ПД только через генератор адреса #1, к ПП − через генератор адреса #2.

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