{
Программный модуль вычисления z = x - y в формате с плавающей точкой
Входные операнды:
AX0 = показатель x, АХ1 = мантисса x, AY0 = показатель y, AY1 = мантисса y.
Выходные данные: AR = показатель z, SR1 = мантисса z
Изменяются регистры: AX0,AY1,AY0,AF,AR,SI,SE,SR
Время вычисления = 11 циклов
}
.ENTRY fps;
fps : AF=AX0-AY0; {Показатель x > показателя y?}
IF GT JUMP shifty; {Если да - переход на сдвиг y}
SI=AX1, AR=PASS AF; {Иначе - сдвиг x}
SE=AR;
SR=ASHIFT SI (HI);
AR=SR1-AY1; {Вычисление мантиссы}
JUMP subt;
shifty: SI=AY1, AR=-AF; SE=AR;
SR=ASHIFT SI (HI);
AY1=SR1;
AY0=AX0, AR=AX1-AY1; {Вычисление мантиссы}
subt: SE=EXP AR (HIX);
AX0=SE, SR=NORM AR (HI); {Нормализация}
AR=AX0+AY0; {Вычисление показателя}
RTS;
.ENDMOD;
Данная программа содержит многофункциональные команды, что позволило сократить время ее работы. Программа выполняется всего за 11 машинных циклов процессора.
Глава 17. Устройство обмена между шинами
В операциях обмена данными и при загрузке данных вычислительными устройствами процессора, часто используется устройство обмена между шиной памяти программ PMD и шиной памяти данных DMD. Это устройство позволяет передавать данные между упомянутыми выше шинами в обоих направлениях. Рассмотрим работу данного устройства. Его структурная схема приведена на рис. 17.1.
Рис. 17.1. Устройство обмена между шинами памяти программ PMD и памяти данных DMD