KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2008

PYTANIE NR 18.
Rejestr mikroprocesora zwany licznikiem rozkazów zawiera
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Licznik rozkazów (PC) to rejestr sterujący używany w cyklu pobierania instrukcji. Przechowuje adres instrukcji, która ma zostać pobrana i wykonana jako następna. Nie jest to licznik statystyczny zliczający wykonane/pozostałe rozkazy ani licznik cykli zegara.

Pełne wyjaśnienie:

Licznik rozkazów, często nazywany też licznikiem programu lub Program Counter (PC), jest rejestrem sterującym procesora, który wskazuje adres następnej instrukcji do wykonania. W typowym cyklu działania CPU (pobierz–zdekoduj–wykonaj) wartość PC służy do pobrania z pamięci kodu maszynowego właściwej instrukcji. Po pobraniu instrukcji PC zwykle jest automatycznie aktualizowany (np. zwiększany o długość instrukcji), a przy instrukcjach zmiany przepływu sterowania (skok, wywołanie, powrót, przerwanie) ustawiany na inny adres.

Odpowiedź "adres rozkazu przeznaczonego do wykonania jako następny." jest więc poprawna, bo opisuje podstawową funkcję PC: wskazywanie miejsca w pamięci programu, z którego procesor ma pobrać kolejną instrukcję.

Pozostałe propozycje są typowymi pułapkami:

  • "liczbę rozkazów pozostałych do wykonania do końca programu." – procesor nie posiada uniwersalnego rejestru, który zna "koniec programu" i zlicza pozostałe instrukcje. Wykonanie może zależeć od warunków, pętli, przerwań i zdarzeń zewnętrznych, więc taka wartość nie jest stałą cechą działania PC.
  • "liczbę rozkazów wykonanych przez procesor do danego momentu." – to przypomina licznik zdarzeń/statystyk (performance counters), ale nie opisuje funkcji licznika rozkazów. PC nie służy do raportowania "ile instrukcji już wykonano", tylko do sterowania pobieraniem następnej.
  • "liczbę cykli zegara liczoną od początku pracy programu." – cykle zegara odnoszą się do pomiaru czasu i wydajności, a nie do adresowania instrukcji. Niektóre architektury mają liczniki czasu lub liczniki cykli, ale nie jest to rola PC.

Wskazówka egzaminacyjna: gdy widzisz słowo "licznik" w kontekście procesora, sprawdź, czy chodzi o adresowanie i przepływ sterowania (PC), czy o pomiary/wydajność (liczniki cykli, liczniki zdarzeń). W pytaniach o PC niemal zawsze kluczowe jest słowo adres i "następna instrukcja".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Licznik rozkazów (często: licznik programu, PC) to rejestr procesora przechowujący adres następnej instrukcji do pobrania i wykonania. Dzięki temu CPU wie, skąd w pamięci odczytać kolejną instrukcję kodu maszynowego.
Rejestr PC przechowuje adres (w przestrzeni pamięci programu), który wskazuje instrukcję przewidzianą do wykonania jako następną. Po pobraniu instrukcji PC jest zwykle aktualizowany, a przy skokach ustawiany na nową wartość.
PC służy do sterowania pobieraniem instrukcji, a nie do statystyk. Liczba wykonanych instrukcji może być mierzona innymi mechanizmami (liczniki zdarzeń), ale nie jest podstawową funkcją licznika rozkazów, który operuje na adresach.
Wartość PC zmienia się po pobraniu instrukcji (zwykle przechodzi do kolejnego adresu) oraz przy zmianie przepływu sterowania: skokach, wywołaniach funkcji, powrotach i obsłudze przerwań. Wtedy PC wskazuje nowy adres następnej instrukcji.
Instrukcje skoku i pętle powodują, że PC nie przechodzi liniowo do "następnego" adresu, tylko zostaje ustawiony na adres docelowy skoku. To mechanizm realizujący warunki, pętle i rozgałęzienia w kodzie maszynowym.
PC przechowuje adres instrukcji (sterowanie przebiegiem programu), a akumulator lub inne rejestry ogólnego przeznaczenia przechowują dane do obliczeń. To różne role: sterowanie wykonaniem vs operacje na wartościach.
Nie. Licznik rozkazów dotyczy adresu instrukcji, natomiast licznik cykli dotyczy czasu pracy procesora (wydajności). Oba mogą być "licznikami", ale mierzą inne wielkości i służą innym celom.
W debugerach i narzędziach diagnostycznych PC jest widoczny jako wskaźnik bieżącej/następnej instrukcji (np. IP/EIP/RIP w x86). Ułatwia to krokowe wykonywanie programu i analizę miejsca, w którym nastąpił błąd.
Procesor nie zna z góry "końca programu" w sensie liczby pozostałych instrukcji: wykonanie zależy od warunków, pętli i zdarzeń. PC wskazuje konkretny adres następnej instrukcji, a nie ile instrukcji zostało do wykonania.
Ucz się rejestrów poprzez ich funkcję: sterujące (PC, rejestr stanu) vs danych (ogólnego przeznaczenia). Ćwicz na schemacie cyklu rozkazowego i analizuj krótkie przykłady skoków, wywołań i przerwań.
info

To pytanie poprawnie rozwiązuje 60% zdających egzamin. średnie

Według specjalistów z branży: "Licznik rozkazów (PC) to rejestr sterujący używany w cyklu pobierania instrukcji."

Źródła:

  • Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1: Basic Architecture, rozdział "Instruction Pointer (RIP/EIP)" (opis roli wskaźnika instrukcji) - https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html (dostęp: 2026-03-01)
  • Arm Architecture Reference Manual (np. Armv8-A), sekcja dot. rejestru PC i wykonywania instrukcji (opis przepływu sterowania) - https://developer.arm.com/documentation (dostęp: 2026-03-01)
  • Wikipedia (PL): "Licznik rozkazów" – definicja rejestru przechowującego adres następnej instrukcji - https://pl.wikipedia.org/wiki/Licznik_rozkaz%C3%B3w (dostęp: 2026-03-01)

Materiały:

  • Podręczniki z architektury komputerów (rozdziały o cyklu rozkazowym i rejestrach sterujących)
  • Dokumentacje architektur CPU (x86, ARM) opisujące rejestry i przebieg wykonania instrukcji
  • Materiały do INF.2 z działu "Budowa i działanie jednostki centralnej"

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego