Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在x86上拆分多字节I/O_Assembly_Io_X86_Hardware - Fatal编程技术网

Assembly 在x86上拆分多字节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

在x86平台上,您可以使用适当字长的输入/输出指令(或可与rep前缀一起使用的字符串操作码类似指令)对2/4个连续I/O端口进行读/写操作。我遇到一段虚拟机监控程序代码,它通过解析来宾尝试执行的操作码来模拟I/O,然后将多字节I/O分段到字节I/O,分别执行每个字节I/O,并统一结果以将它们返回给来宾


我想知道这与直接从硬件的PoV执行多字节I/O(或我没有想到的任何其他方面)之间有多大区别,因为我无法想象这两者是等效的,我有点困惑。

IIRC它们是不等效的。我记得一些数据表(或Ralf Brown端口文件)明确说明了IO操作的大小,以实现正确的行为。不幸的是,我记不起确切的设备是什么。