我正在尝试做一个汇编代码,它读取有多少硬件设备连接到pc/笔记本电脑,并确定它们是什么?可以使用emu8086吗?
我已经搜索了很多,但找不到能读取所有连接的硬件设备的东西,所以我还没有真正尝试过任何东西
例如,如果一个外部鼠标和麦克风连接到我的pc,我希望输出是连接的两个设备,它们是一个鼠标和一个麦克风。
发布于 2019-06-17 11:02:13
对于在仿真的8086PC中运行的来宾代码,EMU8086不支持对实际硬件的直通访问。
据我所知,它甚至没有完全模拟虚拟机的PC硬件(例如,定时器中断或键盘中断),主要是int 21h的DOS和int 10h以及其他一些BIOS调用接口。
这是一个用于教学的玩具仿真器,而不是编写真正的程序。有些事情你根本不能用它来做。
如果你想让桌面上的硬件做任何事情,你最好是写一个在你的操作系统(Linux、Windows、OS X或其他操作系统)下本地运行的程序,并通过内核驱动程序进行系统调用来访问它。
或者编写您自己的OS / bootloader并引导它,这样它就可以直接访问真实的硬件。
或者使用BOCHS,它完全模拟与PC兼容的系统和一些硬件设备,如SoundBlast卡。(从运行BOCHS的主机操作系统的角度来看,它只是一个使用正常系统调用来播放/录制声音的程序。从BOCHS模拟的来宾系统内部,您的代码可以直接通过硬件访问声卡。)
DOSBox是另一个有用的模拟器,但它的目标是游戏,而不是完全忠实地模拟PC中的所有东西。它并不支持所有的东西,例如,最近的一个SO答案说它是doesn't support some of the BIOS int 1Ah RTC functions。
https://stackoverflow.com/questions/56622140
复制相似问题