如何使用emu8086读取硬件输入

时间:2019-06-16 19:49:06

标签: assembly emu8086

我正在尝试编写一个汇编代码,以读取与PC /笔记本电脑连接的硬件设备的数量,并确定它们是什么?可以使用emu8086吗?

我已经搜索了很多,但是找不到能够读取所有连接的硬件设备的东西,所以我实际上还没有尝试过任何东西

例如,如果将外部鼠标和麦克风连接到我的电脑,我希望输出连接的是2个设备,它们是鼠标和麦克风。

1 个答案:

答案 0 :(得分:2)

EMU8086不支持在仿真的8086 PC中运行的来宾代码对真实硬件的直通访问。

据我所读,它甚至没有完全模拟该虚拟客户机的PC硬件(例如计时器中断或键盘中断),其中大部分只是int 21h DOS和int 10h,还有一些其他BIOS调用接口。

这是一个玩具模拟器,用于教学,而不是编写真实的程序。有些事情您根本无法使用。


如果您想让桌面上的硬件执行任何操作,最好选择编写一个程序,该程序在您的操作系统(Linux,Windows,OS X或任何其他操作系统)下本地运行,并进行系统调用以访问该程序通过内核驱动程序。

或者编写自己的OS / bootloader并启动它,以便它可以直接访问真实的硬件。

或者使用BOCHS,它可以完全模拟与PC兼容的系统以及某些硬件设备,例如Soundblaster卡。 (从正在运行BOCHS的主机操作系统的角度来看,它只是另一个使用常规系统调用来播放/录制声音的程序。从 inside 中,BOCHS仿真的来宾系统具有直接通过硬件访问声卡。)

DOSBox是另一个有用的仿真器,但其目标是游戏,而不是PC上所有内容的完整忠实仿真。它不支持一切,例如,最近的SO回答说doesn't support some of the BIOS int 1Ah RTC functions