PJS napisał(a):
W pętli while(1) nic się nie dzieje, więc kompilator najzwyczajniej (prawdopodobnie) optymalizuje i wywala niepotrzebne "rzeczy":
- przypisanie z rzutowaniem nie jest nigdzie wykorzystywane, więc wywala;
- port jest zawsze w jednym stanie, więc być może jest to stan domyślny po resecie lub w sekcji startowej programu jest to ustawiane;
--- zatem jak widać zawartość tej pętli z punktu widzenia kompilatora nic nie robi, więc zostaje pusta pętla while(1)
To tylko przykład, tak samo dzieje się w przypadku bardziej rozbudowanego programu gdzie te zmienne są wykorzystywane, a tutaj chciałem jak najprościej pokazać jaki jest błąd.
język asm
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tak wygląda kod assemblera. Nie potrafię na razie powiedzieć co on oznacza, ponieważ nie znam ASM ale jutro do tego przysiąde, może coś to pomoże