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

5.5.3. Деление

Число, записанное с фиксированной запятой в формате 16:16, можно представить как число, умноженное на 216. Если разделить такие числа друг на друга сразу — мы получим результат деления целых чисел: (А * 216)/(В * 216) = А/В. Чтобы результат имел нужный нам вид (А/В) * 216, надо заранее умножить делимое на 216:

; деление числа с фиксированной запятой в формате 16:16
; в регистре ЕАХ на такое же число в ЕВХ, без знака:
        xor        edx,edx
        ror        еах,16
        xchg       ax,dx          ; EDX:ЕАХ = ЕАХ * 216
        div        ebx            ; ЕАХ = результат деления

; деление числа с фиксированной запятой в формате 16:16
; в регистре ЕАХ на такое же число в ЕВХ, со знаком:
        cdq
        ror        еах,16
        xchg       ax,dx          ; EDX:ЕАХ = ЕАХ * 216
        idiv       ebx            ; ЕАХ = результат деления

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