0xa55a在xv6源代码中的cga_init()中是什么意思?

Ale*_*Liu 0 c operating-system xv6

0xa55a是什么意思?

码:

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

Blo*_* Ma 5

此代码测试if cp是否为可写地址,以确定该模式是CGA还是MONO。如果写不起作用,那么我们将无法使用这部分内存。要写的东西(垃圾)应该是任意的。据我所知,它没有特殊含义

在此之前,程序会将值保存在cp中,was以便垃圾不会污染内存。