Fragment programu jest zapisany w stylu języka IL (Instruction List). Taki zapis działa jak wykonywanie kolejnych kroków na bieżącym wyniku logicznym.
- LD A (load) ustawia bieżący wynik na wartość wejścia A.
- ANDN B wykonuje operację logiczną AND z negacją drugiego sygnału: bieżący_wynik = bieżący_wynik AND (NOT B). Po tej instrukcji mamy więc równanie: wynik = A AND (NOT B).
- OUT Q przypisuje obliczony wynik do wyjścia Q.
Dla podanych stanów: A=1 oraz B=0. Najpierw wyznaczamy negację: NOT B = NOT 0 = 1. Następnie wykonujemy koniunkcję: A AND (NOT B) = 1 AND 1 = 1. To oznacza, że wyjście Q zostanie ustawione na stan wysoki (1).
Dlaczego pozostałe odpowiedzi są błędne? Stwierdzenie, że nie da się określić wyniku, jest nieprawdziwe, bo instrukcje tworzą jednoznaczne wyrażenie boolowskie. Teza o błędnej kompilacji także nie pasuje do samej logiki zadania: w typowej semantyce IL sekwencja LD/ANDN/OUT jest poprawnym wzorcem. W praktyce jedyną niepewnością bywa to, czy dany sterownik nadal wspiera IL lub używa identycznych mnemoników, ale przy założeniu, że to IL, wynik jest jednoznaczny.
Wskazówka egzaminacyjna: zawsze sprowadzaj takie sekwencje do równania, np. Q = A AND (NOT B), a potem podstaw wartości i policz tablicą prawdy.