1

读取 CPU 端口(通过in/out指令)是否有任何副作用?

例如:

  1. 它是否“告诉”设备该端口已被读取?

  2. 不小心读取任意端口会造成任何伤害吗?

我假设它不应该,但是有些东西对我来说没有意义:

如果没有副作用,那么 ATA 驱动器如何在进行编程 I/O 时“知道”何时读取了一个字,以便提供下一个数据字?

4

1 回答 1

4

是的,读取端口可能会产生副作用,但它是否会(如果是的话,它们是什么)因设备而异。

我从未听说过读取端口可能会损坏设备。一些(大部分是旧的)可能会因写入不正确的值而损坏/造成损坏,但我不知道读取可能会造成损坏。在大多数情况下,阅读的副作用相当轻微。

阅读行为可以告诉设备它正在被阅读。要从设备读取,您需要在总线上放置一个命令和一个地址。如果命令是“读取”并且地址对应于设备,则设备正在被读取。

于 2012-05-18T09:08:16.957 回答