我知道对于像 286s 这样的旧机器,从引导驱动器的第一个扇区加载到内存中的 0000:7C00 的前 512 个字节是在 16 位实模式下运行的,但是现代 64 位架构呢?
编辑:我想这是一个错误的问题。引导加载程序的编写者是决定使用哪种模式汇编指令的决定者,对吗?硬件只是按照它所说的去做。那么我的问题应该是,64 位机器上的主要操作系统引导加载程序(如 Windows 7、Mac OS X(最新)和 GRUB)使用什么模式?
我正在从 6502.org 的许多链接中阅读有关 6502 处理器指令集的信息,其中一个教程指出:
堆栈指针(S)指向第1页的一个字节,即地址为0100到01FF的字节,其中最后两位由S提供。当一个字节入栈时,写入在 S 中的地址处,然后 S 递减。
S 寄存器是 1 个字节,因此它显然保存了从 00 到 FF 的值,但由于它在推送时递减,因此当尚未推送任何内容时,它必须从 FF 开始。当芯片第一次通电时,芯片中的物理硬件(晶体管)是否将该寄存器中的所有位都设置为“1”?
我只是想知道底层的细节。
第一次开机时,是先设置取/执行周期,从BIOS芯片直接取指令到CPU中的指令寄存器,还是有自动电路设置,当检测到开机时,指令中的指令BIOS 芯片会自动加载到 RAM 中吗?
更新
我想我在这里找到了答案:
复位信号关闭后,CPU 开始运行。由于 RAM 为空,因此无法执行 RAM 中的代码。CPU 制造商对处理器进行预编程,使其始终在 ROM 的地址“FFFF:0000”(通常是 ROM BIOS)处开始执行代码。
因此,CPU 在物理上设置为一打开就去获取并执行 ROM 中的内存地址 FFFF:0000。
我已经读过补丁星期二是每个月的第二个星期二,所以我可以在设置为联系公司服务器的客户端计算机上的 Windows 更新中描绘代码,这样 Microsoft 就不必找到所有的 Windows 计算机——所有的那天,Windows 计算机来找他们。
但是,如果在某个随机日期(例如每个月的第三个星期三)有重要更新,如此重要以至于每个人都真的需要尽快进行更新,那么 Microsoft 如何启动与连接到 Internet 的每台适用 Windows 计算机的连接?我怀疑,大多数人都拥有非静态 IP 地址,而且我认为大多数互联网服务提供商都不会保存客户计算机的数据库,包括他们连接到互联网的计算机正在运行的操作系统。
那么,如果需要,Microsoft 如何在所有 Windows 计算机上查找并启动与 Windows Update 的联系?
如果您mailx在收到新邮件时在命令行中键入,它会很好地显示新邮件的标题并让您停留在 ? 提示您可以在哪里执行邮件命令。但是,如果您没有新邮件并且尝试进入 mailx,它只会说“没有新邮件”并将您踢出去。当我没有新邮件时,我想进入 mailx,而且我还没有想到要做的是一旦我在?提示,我想查看仍在我邮箱中的已读邮件的所有标题列表。
所以我想知道的两件事是如何到达 ? 提示而不给自己邮寄一封虚拟电子邮件,一旦我进入,如何在我的收件箱中查看已读邮件的列表。
如果我在自己的个人计算机上使用一些基于桌面的电子邮件程序,例如 Mozilla Thunderbird,而世界上其他无数计算机上的某个人给我写了一封电子邮件,该电子邮件是如何找到我的?
此外,如果电子邮件程序位于本地计算机上而不是集中式计算机上,那么是什么阻止了两个或更多人使用完全相同的名称创建帐户?