问题标签 [bios]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
boot - 启动后的寄存器状态
我正在 x86 机器上开发引导加载程序。
当 BIOS 将 MBR 的内容复制到 0x7c00 并跳转到该地址时,寄存器的内容是否有标准含义?寄存器有标准值吗?
我知道段寄存器通常设置为 0,但有时会设置为 0x7c0。其他硬件寄存器呢?
boot - 如何保留低内存(操作系统前)?
背景:在我的操作系统启动之前,我需要保留低于 0xA0000 的内存量。为此,我更改了0040:0013(或 0x413)字,这是 KiB 中可用的低内存量。
但是,Windows 和其他操作系统使用E820h/INT15h来查询内存布局,并且某些 BIOS:es 不会反映 E820h/INT15h BIOS 功能的 0x413 更改。因此,如果需要,我还必须挂钩 E820h 功能。
问题:在操作系统之前是否有另一种(更可靠的)方法来保留低内存?或任何其他改变 E820h/INT15h 结果的方法,而不是挂钩 INT15h(也许通过戳 EBDA?)
bios - 在 LINGO 中获取 BIOS 时间
谁能告诉我如何在 Lingo 中获取 BIOS 时间?
assembly - 如何在 BIOS 下使用 U 盘进行低级 IO(与软盘相比)?
我最近一直在研究一些用于软盘驱动器的引导代码。我的目标是修改程序,以便它使用我的 USB 闪存驱动器。现在我看到了 INT 13H 函数是如何与软盘设备一起使用的,但我想我的问题是,与 USB 驱动器的通信会有什么不同?
例如,这里是一段软盘代码(GNU 汇编器):
现在我已经读到将 0x80 移动到 %dl 将选择 BIOS 中的第一个 HDD。在我的特定 BIOS 中,我可以更改驱动器顺序,其中包括 USB 驱动器。我很确定这将变得依赖于 BIOS,但我认为 BIOS 中列出的顺序可能对应于我移入 %dl 的值。我需要追踪一些文档...
我真的不熟悉使用块设备,有人可以指出我一个开始学习更多的好地方吗?
谢谢!
c# - 我希望能够通过网络从 BIOS 中提取错误日志
我希望能够通过网络从 BIOS 中提取错误日志。查看 MSDN 中的 Win32_BIOS,我没有看到任何定义错误日志的内容。很想在 C# 中使用 WMI 执行此操作,但我愿意接受建议。可能吗?
Win32_BIOS 没有包含 BIOS 错误日志的属性(不知道这是否正确)。是否有库、API 等可用于在本地或从网络中提取此信息?
bios - 如何以编程方式启用 LAN 唤醒
有没有办法以编程方式进入 BIOS 并为那些支持它的机器打开 LAN 唤醒功能?
理想情况下,解决方案将是跨 BIOS,但也可以使用单独的解决方案来打击每个主要供应商。
device-driver - 访问 PCI 配置空间中寄存器的正确方法
当您需要访问 PCI 配置空间中的寄存器时,您是否只需要使用内置的 BIOS 函数将 DWORD 读/写到配置空间中?
例如,如果我尝试使用 B0:D31:F1 上的 IDE 控制器,我是否继续使用该 BDF 作为 BIOS 函数的参数来读/写配置寄存器?因此,如果我想获取供应商 ID,我会读取给定 BDF 中的第一个 DWORD 吗?
或者我只是离基地很远?
编辑:
在 PCI BIOS 规范中,我一直在查看 BIOS 函数的定义,用于在配置空间中读取和写入字。我相信这意味着我可以在配置空间内的各种偏移量处写入寄存器。我想我的问题是,这是在这个级别访问这些寄存器的正确方法吗?
c++ - 开机自检
任何了解 POST 以及如何设计和编写代码的好地方?我是一名 C++ 程序员,对这个词感到很困惑。
谢谢
linux - 是否可以关闭 linux 内核并在实模式下恢复?
假设我想在我的普通操作系统启动之前启动一个小型 linux 发行版。
- BIOS 加载 MBR 并执行 MBR。
- MBR 找到我的 linux 分区的活动分区。
- Linux 启动,我执行我需要做的事情。
- Linux 关闭,我再次切换到实模式。
- 加载原始分区引导扇区并启动我的普通操作系统。
AFAIK,第 4 步将是一项艰巨的任务,在 linux 之前恢复所有设备上的状态,INT13h 可以正常工作吗?我需要恢复中断向量表吗?仅举几例。
这可能在任何现有项目中完成了吗?
bios - 如何在不使用 WMI 的情况下在 C++ 中获取 BIOS 制造商和型号?
我们正在运行 32 位和 64 位的 windows xp pro service pack 3。我们使用 WMI 来获取 BIOS 制造商和型号,但我们更喜欢使用 Win32 API 或汇编语言或 WMI 或 COM 之外的其他方法的方法。代码示例是最受欢迎的。