Wiele metod, dokładna analiza, może ktoś skorzysta:
https://github.com/TobyLobster/multiply_test
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Nowa wersja emulatora Test7800 - 0.4.3 Eksperymentalny emulator konsoli Atari 7800 w nowej wersji 0.4.3 przynosi kluczowe poprawki w synchronizacji i wydajności.
Fujisan 1.0.3 Wydano nową wersję Fujisan, nowoczesnego frontendu do emulatora Atari800 z wieloma poprawkami i ulepszeniami.
Altirra 4.40 beta 19 Dziewiętnasta beta Altirra, najlepszego emulatora 8-bitowych komputerów Atari, już dostępna!
13. odcinek kursu programowania u Larka Larek wraca z kolejną, trzynastą częścią swojego popularnego kursu pisania gier na Atari.
Fujisan 1.0.2 Projekt frontendu do Atari800 otrzymał aktualizację.
atari.area forum » Programowanie - 8 bit » Porównanie różnych metod multiplikacji na 6502
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Wiele metod, dokładna analiza, może ktoś skorzysta:
https://github.com/TobyLobster/multiply_test
Wow. Aż miło poczytać taką analizę. Dobra rzecz!
no ja nadal nie mogę się zdecydować którą wybrać ;)
Oczywiście z Syzygy 6. Bez znaku to samo co mult14, ze znakiem tutaj są wolniejsze.
Wrzuciłem jako smult10.
Edit: @Laoo: możeby tak wzmianka o akceleracji na Lynxie?
Hm... chyba to nie jest w zakresie tego artykułu. Na Lynksie po prostu wpisuje się wartości do rejestrów w odpowiedniej kolejności i po zapisaniu ostatniej + kilka cykli można z innych rejestrów przeczytać wynik. To nie ma związku z 6502 nawet do tego stopnia, że arytmometr mieści się w drugim czipie, w Suzy, czyli tym, który robi za blitter.
No i gratuluję najszybszego algorytmu 8x8!
https://github.com/TobyLobster/multiply … re-support
Aaa... tego punktu nie doczytałem. No to faktycznie. Można tam dodać.
Bardzo fajny artykuł. Chciałbym, żeby mądre głowy napisały podobny o dzieleniu i innych operacjach.
Ale Panowie. Tak trochę na marginesie.
Szanujmy się.
To jest "Porównanie różnych algorytmów mnożenia na 6502"!!!
Jak widzę ten obecny tytuł wątku to oczy krwawią!
A mnie się taki tytuł podoba i związku z tym czekam na adekwatny o dzieleniu: "Porównanie różnych metod dywagacji na 6502" innych działaniach: addycji i subSRAcji. ;-)
dzielenie? to inna bajka, nie spotkałem się z podobnymi do mnożenia metodami przyspieszającymi dzielenie, rozpętlenie pętli co najwyżej
@Tebe Przecież dzielenie to mnożenie przez odwrotność. W arytmetyce modularnej to nawet działa. Nawet sam dawałeś przykład kodu parę lat temu, a ja dopisałem do tego trochę teorii.
W silniku portalowym Numena projekcja perspektywiczna jest realizowana przez wyznaczenie 40/Z i potem mnożenie.
Mnie też kłuje ta "multiplikacja", ale popieram "metody", bo są tam różne implementacje tego samego algorytmu.
xp := cx - newX div newZ;
https://codebase64.org/doku.php?id=base … it_product
wymaga poprawek, bo wynik dzielenia nie jest dokładny
https://www.bbcelite.com/6502sp/main/su … /ll28.html
https://gmplib.org/~tege/divcnst-pldi94.pdf
Oficjalnie posypuję głowę popiołem i przepraszam wszystkich urażonych ;) Ten anglicyzm wkradł się pewnie dlatego że wątek założyłem od razu po przeczytaniu artykułu.
Moje smult10 zostało zoptymalizowane o dwa cykle przy pomocy 256-bajtowej tablicy. Widzę też możliwość optymalizacji:
txa
eor #$80
tax
przy pomocy nielegala:
txa
sbx #$80
Lekki offtopic: właśnie się dowiedziałem, że matematycy ciągle pracują nad mnożeniem: https://en.wikipedia.org/wiki/Multiplication_algorithm
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
atari.area forum » Programowanie - 8 bit » Porównanie różnych metod multiplikacji na 6502
Wygenerowano w 0.021 sekund, wykonano 60 zapytań