这里0xa55a是什么意思?
代码:

*cp = (uint16_t) 0xA55A;
if (*cp != 0xA55A) {      /* 0xa55a means that? */
cp = (uint16_t*) (KERNBASE + MONO_BUF);
    addr_6845 = MONO_BASE;
}

最佳答案

此代码测试cp是否为可写地址,以确定模式应为CGA还是MONO。如果书写不起作用,我们就不能使用这部分记忆。要写的东西(垃圾)应该是任意的。据我所知,它没有特别的意义。
在此之前,程序在cp中保存was处的值,这样垃圾就不会毒害内存。

08-15 23:47