[Назад] [Далее]

5.5.2. Умножение

При умножении следует просто помнить, что умножение 16-битных чисел дает 32-битный результат, а умножение 32-битных чисел — 64-битный результат. Например, пусть ЕАХ и ЕВХ содержат числа с фиксированной запятой в формате 16:16:

        xor        edx,edx
        mul        ebx         ; теперь EDX:EAX содержит 64-битный результат
; (EDX содержит всю целую часть, а ЕАХ - всю дробную)
        shrd       eax,edx,16  ;теперь ЕАХ содержит ответ, если не
; произошло переполнение (то есть если результат не превысил 65 535)

аналогом IMUL в этом случае будет последовательность команд

        cdq
        imul       ebx
        shrd       eax,edx,16

п»ї
"target=_blank><\/a>") //-->