- 38 -
в «0». Во время выполнения очередной команды УУ задерживало следующую
команду пересылки до появления результата в выходном регистре.
6.4 Пример программы в процессоре пересылок
Рассмотрим фрагмент программы процессора пересылок для вычисления
следующего арифметического выражения, в рамках стандартного понимания
символических имен:
Y = ( (a+b)*(c+d) )
Будем считать, что схемы АЛУ для операций с плавающей точкой фикси-
рованы
на следующие адреса сквозной памяти (операнд 1, операнд 2, резуль-
тат), а сами операнды имеют длину в 4 байта:
Сложение - 64, 68, 72;
Умножение - 76, 80, 84;
Фрагмент программы (операция пересылки справа на лево):
64, a; (пересылка первого операнда для сложения)
68, b; (пересылка второго операнда для сложения)
(выполнение команды сложения - результат по адресу 72)
64, 76; (пересылка результата, как операнда для умножения
)
64, c; (пересылка первого операнда для сложения)
68, d; (пересылка второго операнда для сложения)
(выполнение команды сложения - результат по адресу 72)
64, 80; (пересылка результата, как операнда для умножения)
(выполнение команды умножения - результат по адресу 84)
Y, 84; (пересылка результата в оперативную память)
6.5 Реализация перехода по адресу и сравнения
Реализация операции сравнения в процессоре пересылок
аналогично
обычным арифметическим операциям - схемы сравнения фиксированы на оп-
ределенные адреса сквозной памяти, но в поле результата схема помещает «0»
или «1», в зависимости от результата сравнения операндов. Эта реализацию
проиллюстрирована на рис 6.5 слева.
Более интересно реализован механизм выполнения команды перехода по
адресу. Регистр адреса команды УУ так же является словом в
едином адресном
пространстве (и следовательно доступен программисту !) и расположен по ад-
ресу «0». По адресу «4» расположено поле смещения, которое или вычисляется