Просмотр полной версии : Fast 48x48 MUL | DIV
Yo yo yo!
Никто не занимался такой фигнёй?
Я написал, но как-то выглядит неоптимально ^_^
Если кто-нибудь спец в умножениях и делениях, то киньте в меня куском кода плиз. (на добрый толк надо 64x64, но тогда в регистры сразу два числа фиг запихнёшь ^_^ но если для вас это не проблема, то можно и 64x64 ^_^)
Dr.Lion/RSM
02.07.2005, 03:45
Я написал, но как-то выглядит неоптимально ^_^
Может покажешь свой код и немножко опишешь, как он работает? А то мне остро нужны быстрые процедуры умножения/деления правда 32х32!
Чуток позже закину, ибо пишу на кае, а инет естессно на пэцэ ;)
На самом деле всё точно так же как и в умножении | делении 8x8, только почему то мне кажется что существуют более оптимальные методы.
Обычное побитовое умножение-деление?
поковырялся в своих исходах арифметического сжатия. вытащил вот что
BIGMULT ;DEHL=DE*BC
LD HL,0
DUP 16
ADD HL,HL
RL E
RL D
JR NC,$+6
ADD HL,BC
JR NC,$+3
INC DE
EDUP
RET
BIGDIV
LD HL,0 ;BC'BC=BC'BC/DE
SLA C
RL B
EXX
LD HL,0
RL C
RL B
EXX
DUP 32
ADC HL,HL
EXX
ADC HL,HL
EXX
SBC HL,DE
JR NC,$+14 ;ZZ
EXX
LD A,H
OR L
EXX
JR Z,$+7 ;ZZ1
EXX
DEC HL
EXX
JR $+3 ;ZZ
ADD HL,DE ;ZZ1
RL C ;ZZ
RL B
EXX
RL C
RL B
EXX
EDUP
LD A,C
CPL
LD C,A
LD A,B
CPL
LD B,A
RET
мож кому пригодится
Обычное побитовое умножение-деление?
Ага.
Может покажешь свой код и немножко опишешь, как он работает? А то мне остро нужны быстрые процедуры умножения/деления правда 32х32!
http://groups-beta.google.com/group/fido7.zx.spectrum/msg/4e99e4d753b31c1d?dmode=source&hl=en
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot