令和3年度 秋期 応用情報技術者試験 午前 問23
テクノロジ/ハードウェアマイコンの汎用入出力ポートに接続された LED1 を,LED2 の状態を変化させずに点灯したい。汎用入出力ポートに書き込む値として,適切なものはどれか。ここで,使用されている汎用入出力ポートのビットは全て出力モードに設定されていて,出力値の読出しが可能で,この操作の間に汎用入出力ポートに対する他の操作は行われないものとする。

出典:令和3年度 秋期 応用情報技術者試験 午前 問23
- ア汎用入出力ポートから読み出した値と 16 進数の 08 との論理積
- イ汎用入出力ポートから読み出した値と 16 進数の 08 との論理和
- ウ汎用入出力ポートから読み出した値と 16 進数の 48 との論理積
- エ汎用入出力ポートから読み出した値と 16 進数の 48 との論理和
正解:イ
解説
図より LED1 はビット 3,LED2 はビット 6 に接続されています。LED2 など他のビットの状態を変えずに LED1 だけを点灯させるには,現在の出力値を読み出し,ビット 3 だけを 1 にする必要があります。ビット 3 のみが 1 の値は 16 進数の 08 なので,読み出した値と 08 との論理和を書き込めば,ビット 3 だけが 1 になり他のビットは変化しません。
選択肢ごとの解説
- ア誤り。08 との論理積では,ビット 3 以外が全て 0 になってしまい,LED2 が点灯していた場合に消灯してしまいます。
- イ正しい。読み出した値と 08(ビット 3 のみ 1)との論理和を取れば,他のビットを変化させずにビット 3 だけを 1 にできます。
- ウ誤り。48 はビット 6 とビット 3 が 1 の値であり,論理積を取るとその他のビットが 0 になり,しかも LED1 のビットが元のままで点灯を保証できません。
- エ誤り。48 との論理和ではビット 3 に加えてビット 6 も 1 になり,LED2 が消灯していた場合に点灯させてしまい,LED2 の状態が変化します。