I'm writing a little toy operating system using a mix of C and Assembly (It's not meant to be good/fast, just meant to learn from). I know that I can issue an interrupt (I think it's INT 0x15) to check the size of installed memory, which the BIOS does for you. My question is, how does it do this? There obviously needs to be a catch-all function that it performs, because it can't guarantee two systems have the same amount of memory.

closed as off-topic by amon, Deduplicator, gnat, GlenH7, Laiv Feb 20 '18 at 11:17

  • This question does not appear to be about software engineering within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    Your question seems to be about hardware architecture. To a certain degree, questions about high-level hardware concepts are welcome. But this site is about software engineering concepts like design or development processes – please take a look at our help center for details. – amon Feb 18 '18 at 11:13
  • 5
  • Are you using a Microcontroller or a Microprocessor. Since you reference BIOS I am think you are using a Microprocessor. More detail can help generate an answer – Mahendra Gunawardena Feb 20 '18 at 1:20
  • For any question about how the PC BIOS does some particular thing, this could be useful: github.com/kaneton/appendix-bios (the IBM PC BIOS, for early models, was what we'd now call "shared source"; this link contains the BIOS source for the PC-AT, which is pretty similar in most respects to a modern BIOS other than with regards to hardware details). For this particular question, see test2.asm, particularly the routine starting at line 301. – Jules Feb 22 '18 at 22:31