Cтраница 3
Умножение: / HP / / Pi / X / Pi /; в операции участвуют 8 - с0раз - рядов множителя; результат сохраняется в HP; 7 - CQ младших разрядов произведения отбрасываются с округлением; счетчик сдвигов гасится, множитель в PI сохраняется. [31]
Тогда AJ - / 22 3 - 3 11 и Д2 - Л2 - 177773 - 3577761, то есть A i ll, Д 2 - 17, поскольку результатом являются только шестнадцать младших разрядов произведения. [32]
Реализация метода вычетов на ЭВМ М-220 и БЭСМ-6 весьма проста, так как на этих машинах есть операция умножения с двойным количеством разрядов ( без округления и нормализации) и операция вывода в некоторую ячейку памяти младших разрядов произведения из специального регистра. Для получения c &i производятся указанные выше операции. [33]
Произведение заключено в промежутке от 1U до 1, что вытекает из условия, что а и Ъ - нормализованные мантиссы чисел аир, и потому в случае умножения с плавающей запятой мы потеряли бы не более одной значащей цифры в младшем разряде произведения. Особенно осторожным должен быть программист при вычислении произведения ряда чисел, так как может встретиться подобный случай. [34]
В случае введения коэффициентов преобразование нельзя выполнить раздельно по декадам: при умножении цифры данной декады возникают двузначные цифры. Младший разряд произведения остается в данной декаде, а старший разряд переносится в соседнюю старшую декаду. Цифра переноса складывается с цифрой, остающейся от умножения цифры старшей декады. Далее от сложения переноса из разряда единиц с числом, оставшимся в разряде десятков, получается число 9 в разряде десятков, а от сложения переноса из разряда десятков с числом, остающимся в разряде сотен, получается число 7 в разряде сотен. [35]
Результатом операции являются 36 младших разрядов произведения. [36]
Особенности выполнения операции умножения полуслова: операция умножения для полуслова выполняется так же, как команда М, за исключением того, что перед умножением длина множителя увеличивается до получения полного слова, путем распространения влево значения знакового разряда полуслова. Но в регистр г помещаются только младшие разряды произведения, а все разряды сверх 31 отбрасываются. Знак определяется по алгебраическим правилам. В результате выполнения команды МН данные в памяти по адресу з не изменяются. [37]
Особенности выполнения операции умножения полуслова: операция умно жения для полуслова выполняется так же, как команда М, за исключением того, что перед, умножением длина множителя увеличивается до получения полного слова, путем распространения влево значения знакового разряда полуслова. Но в регистр т помещаются только младшие разряды произведения, а все разряды сверх 31 отбрасываются. Знак определяется по алгебраическим правилам В результате выполнения команды МН данные в памяти по адресу Si не изменяются. [38]
Множимое в сумматор передается тогда, когда очередной, сдвинутый, разряд множителя равен единице. В результате сдвигов будут потеряны п младших разрядов произведений. Для округления произведения отводится дополнительный разряд, в котором сохраняется последний из сдвигаемых разрядов. [39]
На регистр Р1 передается первое число ( слагаемое, вычитаемое, множимое, делитель и пр. В регистр Р2 при выполнении операции умножения передается множитель, здесь же накапливаются младшие разряды произведения, а при выполнении операции деления формируется частное. При обработке очередной команды программы в регистре Р2 хранится результат предыдущей операции. [40]
Кроме того, в этом такте уменьшается на 1 содержимое счетчика циклов. Когда счетчик циклов достигает нуля, в регистрах РгСМ и Рг2 будут храниться соответственно старшие и младшие разряды произведения, требующие сдвига на один разряд вправо для правильного расположения в формате двойного слова. [41]
Данная команда выполняется аналогично умножению чисел с фиксированной запятой, но результатом данной операции является 36 младших разрядов произведения. Результату присваивается знак произведения. В МОЗУ результат не посылается, а остается в сумматоре. Если 36 младших разрядов содержат нули, то устанавливается в положение 1 индикатор НУЛЬ. Если старшие 36 разрядов отличны от нуля, то устанавливается в положение 1 указатель ПЕРЕПОЛНЕНИЕ. Возможны случаи, когда в положение 1 устанавливаются одновременно индикатор НУЛЬ и указатель ПЕРЕПОЛНЕНИЕ. [42]
Если нет необходимости образовывать произведения двойной длины, то можно произвести округление мантиссы произведения так же, как это было описано для сложения. Если в машине предусмотрена возможность работы со словами двойной длины, то при запоминании результата в памяти младшие разряды произведения передаются в отдельную ячейку. При этом порядок данной части произведения должен быть соответственно уменьшен. [43]
С учетом этого множителя сложение и вычитание целых чисел сводится к одноименным операциям над числами с фиксированной запятой. Чтобы обеспечить возможность умножения целых чисел, в состав операций ЭВМ вводится умножение без округления с сохранением п младших разрядов произведения. Деление целых чисел может осуществляться специальной программой, интерпретирующей эту операцию в виде последовательности операций над числами с фиксированной запятой. [44]
Структура команды Модифицировать индекс. [45] |