Я занимаюсь программированием на x86. Я нахожусь в 16-битном режиме, и я эмулирую, используя qemu ... Я использую int 0x15 / ax = 0xE820 для просмотра карты памяти ... Используя монитор qemu (чтобы исследовать регион, в котором я написал карту), я получаю следующую информацию о карте памяти:
Start=0 Length= 0x9fc00 (type 1)
Start=0x9fc00 Length= 0x400 (type 2)
Start=0xf0000 Length= 0x10000 (type 2)
Start=0x100000 Length= 0x7ee0000 (type 1)
Start=0x7fe0000 Length= 0x10000 (type 2)
Start=0xfffc0000 Length = 0x40000 (Type 2)
Итак, принадлежат ли сегменты, которых нет на этой карте (например, 0xA0000), как-то как MMIO? Я знаю, что области памяти типа 2 используются B IOS, et c. ( Start = 0x9fc00 Длина = 0x400 (тип 2) - это EDBA) Что происходит, когда я пишу в эти регионы?
Примечание: у меня нет типа 3 (ACPI), вероятно, потому что я пользуюсь qemu. В реальной аппаратуре я, скорее всего, тоже должен получить регионы типа 3. Это тоже ОЗУ?