Книга: Цифровые вычислительные устройства и микропроцессоры приборных комплексов
; R1 – адрес X
; результат на место X
SUBSTR: MOV A,@R0 ; загрузка младшего байта Y
CPL A ; получение дополнительного кода Y
INC A ;
ADD A,@R1 ; вычитание младших байт
MOV @R0,A ; запоминание младшего байта разности
INC R0 ; переход к старшим байтам X и Y
INC R1 ;
MOV A,@R0 ; загрузка старшего байта Y
CPL A ; обратный код Y
ADDC A,@R1 ; вычитание старших байт
MOV @R0,A ; запоминание результата
Умножение двоичных чисел . Пусть производится умножение чисел 11012 и 10112 .
1 1 0 1 множимое
1 0 1 1 множитель
1 1 0 1 1-е частичное произведение
1 1 0 1 2-е частичное произведение
0 0 0 0 3-е частичное произведение
1 1 0 1 4-е частичное произведение
1 0 0 0 1 1 1 1 произведение
Как видно из примера, при выполнении умножения формируются частичные произведения (произведения множимого на цифры разрядов множителя), которые суммируются с соответствующими сдвигами друг относительно друга. В цифровых устройствах процессу суммирования частичных произведений придают последовательный характер: формируется одно из частичных произведений, к нему с соответствующим сдвигом прибавляется следующее частичное произведение, к полученной сумме двух частичных произведений прибавляется с соответствующим сдвигом очередное частичное произведение, и так далее, пока не будут просуммированы все частичные произведения. Этот процесс суммирования можно начинать с младшего либо старшего частичного произведения.
Ниже показаны процессы при умножении с суммированием частичных произведений, начиная со старшего частичного произведения (используется приведенный выше пример умножения чисел 11012 и 10112 ).
1 1 0 1 4-е частичное произведение
1 1 0 1 0 сдвиг на один разряд влево
0 0 0 0 3-е частичное произведение
1 1 0 1 0 сумма 4- и 3-го частичных произведений
1 1 0 1 0 0 сдвиг на один разряд влево
1 1 0 1 2-е частичное произведение