-
Data: 2009-02-10 20:11:22
Temat: Re: Odczyt z rejestru w C
Od: Grzegorz Kurczyk <g...@c...usun.slupsk.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Użytkownik Paweł napisał:
> Witam !
>
> Mam chyba banalne pytanie dotyczące działania kompilatorów.
> Jeśli C mam sprawdzanie wartości rejestru uP np. w następujący sposób:
> if (rejestr==1)
> ...
> else if (rejestr==2)
> ...
> eles if (rejestr==3)
> ....
> to w praktyce wartość z rejestru będzie odczytana jeden raz czy kilka
> razy ?. Jak to będzie w przypadku instrukcji switch ?
>
> Paweł
Najprościej sprawdzić co wypluje kompilator w asm-ie.
W przypadku gdy zmienna "rejestr" będzie zadeklarowana jako volatile, to
dla ciągu instrukcji if będzie ona odczytana za każdym razem. Bez
volatile kompilator prawdopodobnie zoptymalizuje kod do pojedynczego
odczytu. Co do switch to chyba nawet przy volatile odczyt nastąpi tylko raz.
Pozdrawiam
Grzegorz
Następne wpisy z tego wątku
- 10.02.09 23:04 PcmOL
- 10.02.09 23:33 zbyszek
- 11.02.09 01:39 Adam Wysocki
- 11.02.09 01:21 Pszemol
- 11.02.09 14:13 Grzegorz Kurczyk
- 11.02.09 15:43 T.M.F.
- 11.02.09 23:45 Artur M. Piwko
- 12.02.09 08:18 J.F.
- 12.02.09 17:25 Pszemol
Najnowsze wątki z tej grupy
- termostat do lodowki
- SEP 1 kV E
- Aku LiPo źródło dostaw - ktoś poleci ?
- starość nie radość
- Ataki hakerskie
- Akumulatorki Ni-MH AA i AAA Green Cell
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
Najnowsze wątki
- 2024-12-14 światła znów wlączyli
- 2024-12-14 nie lekceważ termostatu
- 2024-12-14 numer 112
- 2024-12-14 Pendrive, ale dysk
- 2024-12-12 Autocom CAN CDP+ wysokie kody błędów
- 2024-12-13 termostat do lodowki
- 2024-12-13 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-13 Warszawa => Head of International Freight Forwarding Department <=
- 2024-12-13 Poznań => Employer Branding Specialist <=
- 2024-12-13 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-13 Kraków => Business Development Manager - Network and Network Security
- 2024-12-13 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-13 Gdańsk => Programista Full Stack .Net <=
- 2024-12-13 Warszawa => Analityk Biznesowo-Systemowy <=
- 2024-12-13 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A