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

3.2 Чтение памяти данных и памяти программ

Эта вариация многофункциональной инструкции представляет специальный случай выше описанной инструкции с опущенной вычислительной частью, например:

AX0=DM (I2, M0), AY0=PM (I4, M6);

Как и для предыдущей инструкции, Х-операнд должен загружаться из памяти данных, Y-операнд – из памяти программ.

3.3 Вычисления с чтением из памяти

Если производится одно чтение из памяти вместо двух, как в

предыдущих командах, можно выполнять более широкий класс вычислений. Возможны все операции ALU, кроме деления, все операции MAC и все операции SHIFTER, кроме немедленного сдвига. Вычисление должно быть безусловным. Пример данного типа многофункциональной инструкции:

AR=AX0+AY0, AX0=DM (I0, M3);

Здесь производится сложение в ALU и в то же время происходит загрузка операнда из памяти данных. Ограничения здесь такие же, как и для предыдущих инструкций. Значение регистра AX0, используемое в качестве операнда сложения, является его содержимым в начале цикла. Операция чтения данных загружает новое значение в этот регистр в конце цикла. По этой причине регистр результата (AR в данном примере) не может быть приемником для чтения из памяти.

3.4 Вычисления с записью в память

Вычисление с записью в память аналогично по структуре вычислению с чтением из памяти, однако порядок инструкций здесь меняется на противоположный. Сначала записывается операция записи в память, затем вычисления, как показано ниже:

DM (I0, M0)=AR, AR=AX0+AY0;

Опять значение исходного регистра для записи в память (AR в данном примере) соответствует его содержимому в начале цикла. Вычисление приводит к записи нового значения в этот регистр в конце цикла. Перестановка инструкций в данной записи недопустима. Инструкция поддерживает тот же класс вычислений, что и предыдущая.

3.5 Вычисления с пересылкой регистр-регистр

Последний тип многофункциональных инструкций производит вычисление с пересылкой регистр-регистр, например:

AR=AX0+AY0, AX0=MR2;

Здесь происходит сложение значений AX0 и AYO в начале цикла и загрузка нового операнда в AX0 из MR2 в конце цикла. Пересылка регистр-регистр может быть в/из любого регистра ALU, MAC и SHIFTER (кроме регистров обратной связи АF и МF и регистра SB). Возможен тот же класс вычислений, что и выше.

4. Инструкции alu, mac и shifter

Эта группа инструкций производит вычисления. Все инструкции этой группы могут исполняться условно за исключением деления (ALU) и непосредственного сдвига (SHIFTER).

4.1 Инструкции и стандартные функции

арифметико-логического устройства

ALU разрядностью 16 бит имеет два 16-битовых порта ввода – Х и Y, и один порт вывода R, блок-схема ALU представлена на рис. П1. Источниками/приемниками данных для портов ввода/вывода являются:

  • источники ввода данных в порт ХАХ0, АХ1,АRR0, МR1, МR2,SR0, SR1;

  • источники ввода данных в порт YАY0, АY1,AF;

  • направление вывода данных через порт RAR,AF.

ALU реализует следующие 19 стандартных функций:

  • R = Х + Y, сложить операнды Х и Y;

  • R = Х + Y + СI, сложить операнды Х и Y и бит переноса;

  • R = ХY, вычесть операнд Y из Х;

  • R= Х – Y + СI– 1, вычесть операнд Y из Х с "заемом";

  • R = YX, вычесть Х из операнда Y;

  • R = Y – Х + СI – 1, вычесть Х из операнда Y с "заемом";

  • R = – X, инвертирование операнда Х(в дополнительном коде);

  • R = – Y, инвертирование операнда Y (в дополнительном коде);

  • R = Y + 1, инкрементирование операнда Y;

  • R = Y – 1, декрементирование операнда Y;

  • R = РАSS Х, пропустить операнд Х для сохранения результата неизменным;

  • R = РАSS Y, пропустить операнд Y для сохранения результата неизменным;

  • R = 0 (PASS 0), обнуление результата;

  • R = АВS Х, найти абсолютное значение операнда Х;

  • R =Х АND Y, логическое И над операндами Х и Y;

  • R = Х ОR Y, логическое ИЛИ над операндами Х и Y;

  • R = Х ХОR Y, операция исключающее ИЛИ над операндами Х и Y;

  • R = NОТ Х, операция логического НЕ над операндом Х;

  • R = NОТ Y, операция логического НЕ над операндом Y.

Операции ALU реализуются программно с помощью легко читаемых ассемблерных инструкций, например:

AR = AX0 + AX1 + C;

AR = AX0 OR AY1; AR = PASS AX1;

Рис. П1. Блок-схема арифметико-логического устройства

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