(x86) How do I know which memory addresses not listed by the card given by Int 15/AX=E820h I can write in assembly?

88 Views Asked by At

How do I know which memory addresses not listed by the card given by Int 15/AX=E820h I can write in assembly?

I can write to certain unlisted memory addresses and I cannot do it to others, for example:

I cannot write to memory address 4 273 995 773 which is not listed by Int 15/AX=E820h however I can write to memory address 4 294 967 297 which is not listed either

It is indicated on this documentation : " The BIOS WILL NOT return a range description for the memory mapping of PCI devices, ISA Option ROM's, and ISA plug & play cards. This is because the OS has mechanisms available to detect them."

If this is what prevents writing to certain memory areas, how can I know this and know the exact locations where I cannot write because of PCI devices or others?

I specify that I am on boot sector and that I use Virtual Box.

I searched for the answer on the web and Stack Overflow without finding anything. I think my question is novel because others ask "are the segments that are not in this map belong to something like MMIO?" While I ask: "How do I know which memory addresses not listed by the card given by Int 15/AX=E820h I can write in assembly?"

0

There are 0 best solutions below