[an error occurred while processing this directive]
|
add dbl(*ar0+), ac0 || mov ac1, dbl(*ar1+)
эта инструкция одновременно прибавляет 32-битное значение из ячейки *ar0+ к 40/32-битному AC0 и записывает 32-битный AC1 в память по адресу *ar1+. Однако два числа 32-битных за раз сложить ему слабо. АЛУ 40-битное только одно. Впараллель можно выполнить одну 32-битную операцию с одной 16-битной (АЛУшные если), параллелизм в чтении из памяти и записи в память своеобразен, там параллелятся две 32 битные операции на раз.
Аккумулятор это просто регистр. Чем их больше, тем лучше :)
Округление к fractional отношения не имеет.
БЛИН! Элементарно же. Если умножитель 16-битный, то 16-й бит у него знаковый. И он уже не сможет принять 16-битное беззнаковое число. Это раз. Просто увеличение скорости и упрощение архитектуры. Второе - например команда FIRSADD/FIRSSUB - она подает на вход умножителя разность или сумму двух операндов - а она при 16-битных входных данных 17-битная. Третье - операндами умножителя могут быть числа из регистров ACx - оттуда поступают честные 17 бит в него.
E-mail: info@telesys.ru