I am developing an operating system in assembly. I have got a working executable loader that loads COM files but I am not sure were I should load them. My OS is loaded into RAM at 0x200000. At the moment I have no memory management or anything like that. I am just scared that I will load a program into somewere were I shouldn’t (Like into video ram , or overwrite existing code). Does the bios use anything before 0x200000 besides the IDT and the video RAM.
Share
You should be safe with almost anything above 0x100000. I load my kernel to that address, and you can store programs in most of your upper memory.
You should have plenty of space above 0x100000 for the OS and programs. Some sections before that are usable, but it may be easier to avoid that part unless you really need it.
Memory Map (x86) – OSDev Wiki is a great reference for some of the things you can expect.
Detecting Memory (x86) – OSDev Wiki explains how to find available memory.