Omnimaga

General Discussion => Technology and Development => Other => Topic started by: Hot_Dog on July 27, 2011, 03:15:35 pm

Title: Curosity Question: Software in Windows
Post by: Hot_Dog on July 27, 2011, 03:15:35 pm
As we all know, Windows programs are compiled into Intel/AMD opcodes.  I'm assuming that the program run from a specific RAM address, does anyone know which one?  Or perhaps all calls, jumps and returns are relative?
Title: Re: Curosity Question: Software in Windows
Post by: calc84maniac on July 27, 2011, 03:16:37 pm
As we all know, Windows programs are compiled into Intel machine language.  I'm assuming that the program run from a specific RAM address, does anyone know which one?  Or perhaps all calls, jumps and returns are relative?
I believe programs run in their own address space, using virtual memory. I think they're loaded at 0x00000000 or somewhere close.
Title: Re: Curosity Question: Software in Windows
Post by: Hot_Dog on July 27, 2011, 03:17:54 pm
As we all know, Windows programs are compiled into Intel machine language.  I'm assuming that the program run from a specific RAM address, does anyone know which one?  Or perhaps all calls, jumps and returns are relative?
I believe programs run in their own address space, using virtual memory. I think they're loaded at 0x00000000 or somewhere close.

What about early DOS programs, assuming Virtual Memory didn't exist?
Title: Re: Curosity Question: Software in Windows
Post by: AngelFish on July 27, 2011, 03:32:26 pm
In modern windows, programs tell windows where they'd like to be placed in memory. If that can't happen, then windows goes through and changes the instructions so that the program will run properly at a different address.

As for DOS, I think it used a system similar to TI-OS to load programs, but I'm not sure.