- posted
13 years ago
wincupl i 20v8
- Vote on answer
- posted
13 years ago
a przy okazji, tu jeszcze nie pytałem, czy Ktoś tu zna metodę mnożenia zamiast dzielenia liczb? podobno popularne to było za czasów dawnych procesorów? czy Ktoś może podać jakiś przykład?
- Vote on answer
- posted
13 years ago
Użytkownik "identifikator: 20040501" snipped-for-privacy@go2.pl napisał w wiadomości news:i1qb58$f9c$ snipped-for-privacy@mx1.internetia.pl...
Zamiast dzielić przez 2, mnożyło się przez 0.5, bo mnożenie było szybsze. Na tym to polegało.
Podobnie było z potęgowaniem. Zamiast podnosić X do 11 potęgi mnożyło się 11 razy X przez siebie. Takie mniej więcej były proporcje na procesorze
8086 6 MHz bez koprocesora.Jeszcze lepsze proporcje bywały dla 8085.
Pozdrowienia. Krzysztof z Tychów.
- Vote on answer
- posted
13 years ago
Do celow projektowania tak - tzn dawno dawno temu lattice gal20v8 spelnial ogolnie przyjety standard gal20v8 i dawal sie zaprojektowac w Cupl na urzadzenu G20V8.
Czy w kosciach Lattice nie bylo jakis rozszerzen, albo czy nie ma ich dzis to nie dam glowy. Chyba sa. Ale w wersji podstawowej wystarczy.
Programowanie to osobna kwestia - najlepiej miec programator obslugujacy kosci danego producenta, i to najlepiej w aktualnej wersji.
J.
- Vote on answer
- posted
13 years ago
tego się domyśliłem, ale zupełnie nie rozumiem dlaczego dzielenie przez 10 odpowiada mnożeniu przez 0xcccd? skąd się bierze ta liczba?
- Vote on answer
- posted
13 years ago
jak przemnozysz np 15621 [3D05h] przez CCCDh to wyjdzie
30D0D901bierzemy teraz dwa najstarsze bajty 30D0 i przesuwamy jeszcze o 3 bity i wychodzi nam 061A czyli .. 1562.
Oczywiscie nie zdziw sie ze 2^19/10 = 0xCCCC.CCC
J.
- Vote on answer
- posted
13 years ago
diabelskie sztuczki, próbuję zrozumieć jak na coś takiego można wpaść...
- Vote on answer
- posted
13 years ago
trywialnie prosto.
Najpierw pomysl dziesietnie: chcemy np podzielic przez 13. Jest to rownoznaczne z mnozeniem przez 1/13 = 0.0769230769230769..
Oczywiscie my bedziemy sprytni i sobie najpierw pomnozymy przez
76923, a potem podzielimy przez milion.A binarnie bedziemy chcieli na koncu dzielic np przez 2^17. Wiec trzeba przemnozyc przez 2^17/13=10082.46..
I juz widac ze lepszy bylby 2^18/13=20164.92.. ~= 20165
J.
- Vote on answer
- posted
13 years ago
dzięki,