User Tag List

Показано с 1 по 10 из 30

Тема: 32 бит деление

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #23

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По аналогии со второй версией без восстановления остатка, сделал подобную версию и с восстановлением

    Скрытый текст

    Код:
    ; BC = HLBC/DE, HL = HLBC%DE
    ; Restoring division
    DIV32:
    		ld a,b
    		call DIV32_8
    		push af
    		ld a,c
    		call DIV32_8
    		pop bc
    		ld c,a
    		ret
    		
    ; A = HLA/DE, HL = HLA%DE
    DIV32_8:
    		ld b,8
    DIV321:
    		add a,a
    		adc hl,hl
    		jr c, DIV322
    		sbc hl,de
    		jr nc, DIV323
    		add hl,de
    		djnz DIV321
    		ret
    DIV322:
    		ccf
    		sbc hl,de
    DIV323:
    		inc a
    		djnz DIV321
    		ret
    [свернуть]

    +7 байт, но она быстрее и 2в1 - тут не только 32/16=16, но и 24/8=8 (кстати без восстановления остатка тоже во второй версии эта фишка есть, забыл там написать).
    В итоге у каждого метода (restoring и non-restoring) по два варианта: компактный и побыстрее. Если сравнивать методы, то очевидно restoring компактнее, non-restoring быстрее. Можно еще немного ускорить за счет некоторого увеличения размера, но не сильно, тут уже каждый сам может при желании доработать.
    Последний раз редактировалось ivagor; 21.02.2021 в 06:12. Причина: Поправил сопроводительный текст, в комментариях к программе сразу было правильно

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    Evgeny Muchkin(01.03.2021)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее: 21.01.2021, 17:46
  2. Вопрос про EIS-деление
    от litwr в разделе ДВК, УКНЦ
    Ответов: 1
    Последнее: 16.12.2019, 20:28
  3. умножение/деление в алгоритмах ZX игр
    от bigral в разделе Программирование
    Ответов: 27
    Последнее: 18.10.2019, 13:20
  4. Деление/умножение
    от Serdjuk в разделе Программирование
    Ответов: 51
    Последнее: 25.04.2018, 15:54
  5. деление синхросигнала
    от Splinter в разделе Изображение
    Ответов: 3
    Последнее: 01.08.2005, 02:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •