【发布时间】:2012-05-25 20:33:00
【问题描述】:
读取 CPU 端口(通过in/out 指令)是否有任何副作用?
例如:
它是否“告诉”设备该端口已被读取?
不小心读取任意端口会造成伤害吗?
我假设它不应该,但是有些东西对我来说没有意义:
如果没有副作用,那么 ATA 驱动器如何在执行编程 I/O 时“知道”何时读取了一个字,以便提供下一个数据字?
【问题讨论】:
-
也许我理解错了,但是读取 I/O 不就是副作用的定义吗?
-
@KilianFoth:这是一个输入端口......如果它只是读取电压,根据定义它不应该改变值,对吗?或许不是,这就是我问的原因……不管怎样,有些东西对我来说没有意义……
-
它不应该,但是 CPU 很复杂并且有各种专有的怪异之处。最好的办法是尝试一下,看看会发生什么。
-
@Polynomial:好吧,如果是这样的话,我可能不会尝试,因为我不想炒任何东西哈哈。这就是我问的原因之一,谢谢你的信息。 :P