
Сообщение от
ivagor
Надо определиться, все же оптимизация по размеру или по скорости.
Блин, при 27 байтах на процедуру, какой смысл в оптимизации по размеру, если не разворачивать цикл?

Сообщение от
ivagor
И если по скорости, то можно ли разворачивать цикл
Мой вариант удобнее разворачивать 
- - - Добавлено - - -
А если ограничить делитель и частное 15-ю битами, то ветку DIV322 можно выкинуть, и тогда уже развернуть. Вряд-ли найдутся более быстрые процедуры.
- - - Добавлено - - -
А потом ещё сэкономить заменив jr DIV324 на dec de
- - - Добавлено - - -
Код:
DIV32: ; DE = HLDE/BC, HL = HLDE%BC, HLDE<2^31, BC<2^15
rept 16
sla e
rl d
adc hl,hl
sbc hl,bc
jr nc, $+4
add hl,bc
dec e
inc e
endm
ret
- - - Добавлено - - -
1162 тактов максимум
- - - Добавлено - - -
209 байт
- - - Добавлено - - -

Сообщение от
b2m
А если ограничить делитель и частное 15-ю битами, то ветку DIV322 можно выкинуть
Хотя, не очевидно это, хорошо бы доказать...
- - - Добавлено - - -
Ооо... как можно было забыть, что inc e на 2 такта быстрее inc de!!!