CPU ポートを ( in
/out
命令を介して) 読み取ると、何らかの副作用がありますか?
例えば:
ポートが読み取られたことをデバイスに「伝えます」か?
任意のポートを不用意に読み取ると害が生じる可能性はありますか?
私はそれがすべきではないと仮定していますが、それから何かが私には意味がありません:
副作用がない場合、ATA ドライブは、プログラムされた I/O を実行するときに、ワードがいつ読み取られたかをどのように「認識」し、データの次のワードを提供できるのでしょうか?
はい、ポートの読み取りには副作用がありますが、そうであるかどうか (およびそうである場合はその内容) はデバイスによって異なります。
ポートを読み取ることで破損する可能性のあるデバイスについて聞いたことがありません。いくつかの(ほとんどが古いもの) は、誤った値を書き込むことによって破損したり破損したりする可能性がありますが、読み取りによって破損する可能性があるものについては知りません。ほとんどの場合、読書の副作用はかなり軽度です。
読むという行為は、それが読まれていることをデバイスに伝えることができます。デバイスから読み取るには、コマンドとアドレスをバスに配置します。コマンドが「読み取り」で、アドレスがデバイスに対応する場合、デバイスは読み取られています。