0
Я проходил через код XV-6, через который он идентифицировал структуру MP. Сначала он ищет в первом kb EBDA. Код это как этотMP Плавающая точка
static struct mp*
mpsearch(void)
{
uchar *bda;
uint p;
struct mp *mp;
bda = (uchar *) P2V(0x400);
if((p = ((bda[0x0F]<<8)| bda[0x0E]) << 4)){
if((mp = mpsearch1(p, 1024)))
return mp;
} else {
p = ((bda[0x14]<<8)|bda[0x13])*1024;
if((mp = mpsearch1(p-1024, 1024)))
return mp;
}
return mpsearch1(0xF0000, 0x10000);
}
Я не понимаю, что делает эту линию if((p = ((bda[0x0F]<<8)| bda[0x0E]) << 4))
делать.
Можете ли вы объяснить немного больше? – ashish