Body #21
14 ноября 2000

Coding - простая процедуры извлечения приблизительного корня из любого числа.

■························[  Coding  ]·························■
(c) Brom^Еllipse                                     mdm 2383150

──────────────────────────┐   
in  : HL - исходное число │   Не  многие знают, что извлечь при-
out : BC -  результат     │ близительный корень из любого целого
used: HL,DE,BC,IX,A       │ числа   так  просто,  ну  или  почти
                          │ просто. Метод описаный ниже был при-
SQR     LD      BC,1      │ думам еще в начале 80-х. По-научному
        LD      DE,1      │ звучит  он так: Квадратный корень из
        XOR     A         │ любого целого числа равен количеству
L1      OR      A         │ последовательных    четных    чисел,
        SBC     HL,DE     │ которые можно из него вычесть.
        PUSH    HL        │   Суть   метода  заключается  в  том
        OR      A         │ чтобы вычитать из числа все нечетные
        SBC     HL,DE     │ числа  (начиная с 1)  пока результат
        POP     HL        │ не  станет  равным  нулю,  либо пока
        RET     C         │ уменьшаемое не станет больше вычита-
        INC     DE        │ емого,  количество  раз  вычитания и
        INC     DE        │ будет,округлюнный до меньшего, резу-
        INC     BC        │ льтат.
        JR      L1        │   Слева приведена процедура на asm'e
──────────────────────────┘ которая  явно  не  является  слишком
быстрой, но в принципе у меня все работает :)





Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
News - новости от OHG, Delta Hackers Group, Die Crupps, Волгодонских спектрумисто и от группы SpeedWay.
Железо - схема расширения памяти Пентагона до 256кб.
Итоги - мнения об Enlight'97.

В этот день...   18 ноября