KWALIFIKACJA INF2 - STYCZEŃ 2018 (test 2)

PYTANIE NR 3.
Brak informacji o parzystości liczby lub o znaku wyniku, wykonywanej operacji w ALU, może świadczyć o problemach w działaniu
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Flagi parzystości i znaku wyniku są typowymi znacznikami stanu ustawianymi po operacjach ALU.
Informacje te są przechowywane w rejestrze flagowym procesora. Wskaźnik stosu opisuje adres w stosie, cache przyspiesza dostęp do danych, a "tablica rozkazów" nie służy do raportowania cech wyniku.

Pełne wyjaśnienie:

ALU (jednostka arytmetyczno-logiczna) po wykonaniu wielu instrukcji (dodawanie, odejmowanie, operacje logiczne, porównania) aktualizuje flagi stanu, które opisują cechy otrzymanego wyniku. Do takich cech należą m.in. informacja o znaku wyniku oraz o parzystości (czy liczba jedynek w najmłodszym bajcie wyniku jest parzysta/nieparzysta). Jeśli system "nie ma informacji" o tych cechach, wskazuje to na problem z mechanizmem utrzymywania i udostępniania flag, czyli z działaniem rejestru flagowego (koncepcyjnie: rejestr FLAGS/EFLAGS/RFLAGS zależnie od architektury).

Odpowiedź "rejestru flagowego." jest poprawna, ponieważ to właśnie tam procesor przechowuje bity/znaczniki odzwierciedlające wynik ostatnich operacji ALU. Te bity są później wykorzystywane m.in. przez instrukcje skoków warunkowych i porównań, które sprawdzają stan flag.

Pozostałe propozycje nie pasują funkcjonalnie:

  • "wskaźnika stosu." dotyczy adresowania stosu (położenia w pamięci), a nie opisu właściwości wyniku działania ALU.
  • "tablicy rozkazów." nie jest typowym elementem architektury odpowiedzialnym za przechowywanie flag wyniku; rozkazy/instrukcje są pobierane i dekodowane, ale cechy wyniku operacji są raportowane przez flagi stanu.
  • "pamięci cache." jest pamięcią podręczną przyspieszającą dostęp do danych i instrukcji; nie przechowuje ona semantycznej informacji o znaku lub parzystości wyniku bieżącej operacji ALU.

Wskazówka egzaminacyjna: gdy w treści pojawiają się słowa "znak", "parzystość", "zero", "przeniesienie", "przepełnienie", zwykle chodzi o flagi procesora i ich rejestr, a nie o pamięci, stos czy elementy przyspieszające wykonanie.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Rejestr flagowy to rejestr przechowujący bity stanu opisujące wynik ostatnich operacji CPU (zwłaszcza ALU), np. czy wynik był zerowy, ujemny, czy wystąpiło przeniesienie lub przepełnienie. Te bity są potem wykorzystywane m.in. przez skoki warunkowe i porównania.
Flagi mogą kodować m.in. znak wyniku (czy jest dodatni/ujemny), parzystość, informację o zerze, przeniesienie oraz przepełnienie. Dzięki temu procesor i program mogą podejmować decyzje warunkowe bez dodatkowych obliczeń na samym wyniku.
Znak i parzystość to klasyczne cechy wyniku reprezentowane w postaci flag stanu. Jeśli te informacje "znikają" lub nie są ustawiane, problem dotyczy mechanizmu aktualizacji/odczytu flag, a nie pamięci cache czy stosu, które pełnią inne funkcje.
Nie bezpośrednio. Wskaźnik stosu (SP/ESP/RSP w zależności od architektury) wskazuje bieżące położenie stosu w pamięci. Flagi wyniku operacji ALU są przechowywane w rejestrze flagowym i służą do sterowania logiką warunkową, a nie do adresowania stosu.
Flaga parzystości informuje, czy liczba bitów ustawionych na 1 (zwykle w najmłodszym bajcie wyniku) jest parzysta. Zmienia się po wielu operacjach arytmetycznych i logicznych wykonywanych w ALU. Jest używana rzadziej w kodzie wysokopoziomowym, częściej w niskopoziomowym.
Flaga znaku odzwierciedla, czy wynik jest ujemny w reprezentacji ze znakiem (zależy od najstarszego bitu wyniku). Ułatwia realizację porównań i skoków warunkowych, np. rozgałęzień typu "mniejsze/większe" bez dodatkowego sprawdzania bitów wyniku w rejestrach ogólnego przeznaczenia.
Nie. Cache jest pamięcią podręczną służącą do szybszego dostępu do danych i instrukcji z RAM. Flagi stanu są elementem wewnętrznego stanu procesora i są przechowywane w rejestrze flagowym, a nie w cache.
Najczęściej podczas debugowania programów niskopoziomowych (assembler), analizy działania skoków warunkowych, obsługi wyjątków oraz w systemach operacyjnych i sterownikach. W takich miejscach decyzje programu często zależą od tego, jakie flagi ustawiła poprzednia instrukcja ALU.
Szukaj słów kluczowych: znak, parzystość, przeniesienie, przepełnienie, zero, "warunek", "skok warunkowy", "porównanie". To niemal zawsze wskazuje na flagi stanu procesora. Elementy typu cache, stos czy rejestry adresowe dotyczą innych obszarów działania CPU.
Częste są pomyłki pojęć: mylenie flag z rejestrami ogólnego przeznaczenia albo z pamięcią (cache/RAM). Inny błąd to wybór odpowiedzi "brzmiącej znajomo" (np. stos), mimo że pytanie dotyczy cech wyniku operacji, które są raportowane właśnie przez rejestr flag.
info

Około 58% zdających odpowiada poprawnie na to pytanie. średnie

Według specjalistów z branży: "Flagi parzystości i znaku wyniku są typowymi znacznikami stanu ustawianymi po operacjach ALU.Informacje te są przechowywane w rejestrze flagowym procesora."

Źródła:

  • Intel 64 and IA-32 Architectures Software Developer’s Manual, Volume 1: Basic Architecture, rozdziały dot. rejestru EFLAGS/RFLAGS i flag stanu (ZF/SF/PF/CF/OF), Intel (najnowsza dostępna wersja PDF na stronie producenta)
  • AMD64 Architecture Programmer’s Manual, tomy opisujące rejestr RFLAGS i bity stanu (flagi) po operacjach arytmetyczno-logicznych, AMD (oficjalna dokumentacja PDF)
  • David A. Patterson, John L. Hennessy, "Computer Organization and Design", rozdziały o ALU, rejestrach i flagach/condition codes (wydanie zależne od dostępności)

Materiały:

  • Dokumentacja architektury x86/x86-64 (sekcje o rejestrze flag i flagach stanu)
  • Podręczniki z architektury komputerów (ALU, rejestry, sterowanie)
  • Materiały do podstaw asemblera (instrukcje wpływające na flagi i skoki warunkowe)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego