Assembly 在x86上拆分多字节I/O
在x86平台上,您可以使用适当字长的输入/输出指令(或可与rep前缀一起使用的字符串操作码类似指令)对2/4个连续I/O端口进行读/写操作。我遇到一段虚拟机监控程序代码,它通过解析来宾尝试执行的操作码来模拟I/O,然后将多字节I/O分段到字节I/O,分别执行每个字节I/O,并统一结果以将它们返回给来宾Assembly 在x86上拆分多字节I/O,assembly,io,x86,hardware,Assembly,Io,X86,Hardware,在x86平台上,您可以使用适当字长的输入/输出指令(或可与rep前缀一起使用的字符串操作码类似指令)对2/4个连续I/O端口进行读/写操作。我遇到一段虚拟机监控程序代码,它通过解析来宾尝试执行的操作码来模拟I/O,然后将多字节I/O分段到字节I/O,分别执行每个字节I/O,并统一结果以将它们返回给来宾 我想知道这与直接从硬件的PoV执行多字节I/O(或我没有想到的任何其他方面)之间有多大区别,因为我无法想象这两者是等效的,我有点困惑。IIRC它们是不等效的。我记得一些数据表(或Ralf Brow
我想知道这与直接从硬件的PoV执行多字节I/O(或我没有想到的任何其他方面)之间有多大区别,因为我无法想象这两者是等效的,我有点困惑。IIRC它们是不等效的。我记得一些数据表(或Ralf Brown端口文件)明确说明了IO操作的大小,以实现正确的行为。不幸的是,我记不起确切的设备是什么。