13

为什么IBM PC架构在引导55 AA扇区的最后两个字节中使用幻数作为引导签名

我怀疑这与它们的位模式有关:01010101 10101010,但不知道是什么。

我的猜测是:

  1. BIOS 正在对这些字节进行一些按位和/或/异或操作以将它们比较在一起,例如,如果结果为 0,它可以很容易地检测到并跳转到某个地方。
  2. 它可能是一些奇偶校验/完整性保护措施,如果其中一些位被破坏,它可能会被检测到或其他东西,并且即使磁盘上的这个特定位已被破坏或其他东西,仍然被认为是正确引导系统的有效签名。

也许你们中的某个人可以帮我回答这个烦人的问题?

我记得我曾经在某处读过这些位模式,但不记得在哪里。它可能在一些纸质书中,因为我在网上找不到任何关于它的信息。

4

1 回答 1

9

我认为它是任意选择的,因为 10101010 01010101 似乎是一个不错的位模式。Apple ][+ 重置向量与 $A5 异或到 (10100101) 以产生校验值。有些机器使用更“特定”的东西进行启动验证;对于 PET 衍生机器(例如 Commodore Business Machines 的 VIC-20 和 Commodore 64),位于例如地址 $8000 的可引导墨盒映像将 PETASCII 字符串“CBM80”存储在地址 $8004(购物车起始价为 $A000将在 $A004 处具有字符串“CBMA0”等),但我猜 IBM 认为不会插入任何其他机器的磁盘,并且在第一个扇区的最后两个字节中具有 $55AA。

于 2012-06-17T21:50:56.043 回答