如何从SMBIOS中找到BIOS品牌/版本(在带有FreeDOS的VMWare中)

时间:2013-01-29 22:41:16

标签: assembly vmware bios

我正在编写一个程序,用于使用FreeDOS O / S在VMWare中运行的低级汇编语言查找和打印PC信息(CPU,硬盘,BIOS等)。我需要找到我的BIOS版本和品牌ID(或类似的东西)和我的硬盘信息。

我了解到BIOS信息可以通过SMBIOS访问,但我对此并不十分熟悉。任何人都可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:1)

获取最新的SMBIOS spec,在那里描述。简而言之,您需要在16字节对齐位置扫描BIOS段中的“_SM_”字符串(物理内存的第一个兆字节的前64K,即0xF0000-0x100000)。它有一个指向包含所需信息的表列表的指针。确保验证标头校验和以避免误报。

如果您需要一些示例源代码,请查看dmidecode

有关详细说明,另请参阅here