-
Data: 2014-04-05 10:02:24
Temat: Odp: C vs. ASM na przykładzie PIC18F
Od: Sylwester Łazar <i...@a...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> > Napisałem procedurę w ASM i w C.
> > Oczywiście obie działają poprawnie.
> [ciach]
>
> Ja bym się aż tak bardzo nie ekscytował uzyskanymi wynikami.
Spokojnie. Wcale się nie ekscytuje. Przecież znałem z góry wynik.
Nie spodziewałem się tylko, że mechanika, jak na "głupie" układanie kody,
osiągnie nawet takie wyniki. Za naszego życia maszyna nie będzie lepsza od
człowieka.
> CPU procesora PIC18F2320 jest 16 bitowe
No tak w połowie, bym rzekł.
Jeśli mówisz o adresowaniu, no to rejestry FSRxH:L mają tylko 12-bitów,
więc do 4096 może i procedura się nie zmieni zbyt wiele po kompilacji.
O 100, może więcej instrukcji?
Spójrz na rysunek adresowania pośredniego:
ww1.microchip.com/downloads/en/DeviceDoc/39605b.pdf
strona 58AR (Acrobat Reader)/56DS.
Jak zapewne zauważyłeś, podałem w rozważaniach liczbę 5000.
Dla 5000 to naprawdę może kompilator przygotuje coś 16 bitowego.
Wtedy obawiam się, będzie dopiero tragedia.
A szyna danych jest z kolei 8-bitowa.
Jednak jeśli czytać ją z tablicy ROM to wtedy jest dopiero 16-bitowy procek.
Trudno tak rzec jaki on właściwie jest.
Na stronie 55(AC)/55DS Microchip podaje świetny przykład kasowania pamięci.
Dlaczego sam go nie stosuje?
Przecież można by go lepiej adaptować, nawet na kasowanie 16-bitowe.
Example 5-5
LFSR FSR0 ,0x100 ;
NEXT
CLRF POSTINC0 ; Clear INDF register then inc pointer
BTFSS FSR0H, 1 ; All done with Bank1?
GOTO NEXT ; NO, clear next
CONTINUE ; YES,
Oczywiście jest tutaj sprawdzany tylko przeniesienie z bitu 8 na 7 FSR,
ale przecież kompilator mógłby sobie poukładać w pamięci tak zmienne, aby
ostatnia kończyła się
na adresie modulo 256.
Przynajmniej do dwóch pętli w tym maleństwie dałoby się tak zrobić.
Ale ja też tak nie zrobiłem u siebie, a wyszło mi to krótsze.
> a Ty napisałeś program
> z pomieszaniem adresowania 8 i 16 bitowego.
Sam procesor juz pomieszany. Robiłem co mogłem.
Ja to nawet zrobiłem to 7-bitowo.
> Nic dziwnego, że
> kompilator dodał instrukcje konwersji typów. Bądż uprzejmy
> przepisać ten program na liczby i adresowanie 16 bitowe
> i dopiero wtedy porównać uzyskane rezultaty.
Taki szkielet. Nie widzę problemu (poza RAMem), aby go rozbudować.
Ale to będzie walka mojej głowy z głupim metakompilatorem.
Wynik obawiam się będzie jeszcze bardziej przerażający.
Myślę, że Ty z łatwością byś sobie też poradził.
> Oczywiście optymalizacja w C powinna być dla "release" a nie "debug".
Była ALL w drugim etapie.
Nie bawiłem się selektywnym klikaniem na checkboxy,
bo w totolotka nie gram :-)
Jednak nie sądzę, że przy jakiejś kombinacji da się coś uzyskać sensownego.
> Współcześnie sprzedawane kompilatory są często generowane przez
> metakompilatory, gdyż koszta zabiłyby producenta oprogramowania.
> K.
A tak zabijają nas kosztami:-)
Myślę, że wiesz, że musiałem spędzić wielokrotnie więcej godzin nad ASM.
W tym C to bajka - tylko kilka linijek :-)
S.
Następne wpisy z tego wątku
- 05.04.14 10:10 Marek
- 05.04.14 10:15 Marek
- 05.04.14 10:25 Marek
- 05.04.14 10:32 Marek
- 05.04.14 11:01 Sylwester Łazar
- 05.04.14 11:04 Marek
- 05.04.14 11:10 Sylwester Łazar
- 05.04.14 11:10 jacek pozniak
- 05.04.14 11:34 Michał Lankosz
- 05.04.14 11:43 jacek pozniak
- 05.04.14 11:49 Sylwester Łazar
- 05.04.14 12:28 Marek
- 05.04.14 12:42 Sylwester Łazar
- 05.04.14 12:42 jacek pozniak
- 05.04.14 12:48 Sylwester Łazar
Najnowsze wątki z tej grupy
- pompa CO
- 2,5 x więcej niż Li-Ion
- Tfu! Przeklety prostokąt (czyli UPS i "sinus modyfikowany")
- Dalekopis T100 - problem z powrotem karetki
- Diody LED - oświetlenie na choinkę
- ale wiesz, że są gotowce?
- jak wykryć zapalenie żarówki?
- Cyna dylemat
- Mierniki poziomu glukozy (CGM, FGM)
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Kontrola nad prądem - sprawdź jak działa [apka - przyp. JMJ] eLicznik
- NETIA i hasło logowania
- Modulacja FM
- Najgorszy język programowania
- Kol. sukces po polsku: firma Szumisie sp. z o.o.
Najnowsze wątki
- 2025-12-29 MON nabyło Hutę Częstochowa. "Historyczne znaczenie"
- 2025-12-28 Czwarta doba strajku na głębokości 500 metrów. "Ministerstwo robi sobie z nas jaja"
- 2025-12-29 Kolejny kraj [WB - przyp. JMJ] zakazuje chowu klatkowego. W Polsce żyje tak 40 mln kur
- 2025-12-29 MON nabyło Hutę Częstochowa. "Historyczne znaczenie"
- 2025-12-28 Norwegia kontra media społecznościowe
- 2025-12-28 PREZENTY OD MINISTRA FINANSÓW. SKĄD PIENIĄDZE?
- 2025-12-27 pompa CO
- 2025-12-27 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-12-27 Ewakuacja ludności
- 2025-12-26 Gdańsk => ERP Microsoft Dynamics 365 Commerce Consultant <=
- 2025-12-26 Kraków => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-26 Kraków => Microsoft Dynamics 365 Finance Consultant <=
- 2025-12-26 wymieniłem termostat
- 2025-12-26 Warszawa => Senior Backend Java Developer <=
- 2025-12-25 Finlandia przywraca swastykę




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]