Assembly 打开应用程序时会发生什么

Assembly 打开应用程序时会发生什么,assembly,binary,operating-system,cpu-architecture,execution,Assembly,Binary,Operating System,Cpu Architecture,Execution,在Windows中打开可执行文件时会发生什么?它被加载到RAM中了吗 如果可执行文件的大小为20GB,我是否需要20GB的RAM来运行它 如果我错了,请纠正我RAM中加载的唯一内容是代码二进制/汇编和堆,堆栈如int a=3;3将被初始化为具有特定地址的堆栈或堆 然后RAM向CPU发送信息,如何发送?它到底发送什么 我想知道用C.thx构建的Windows可执行文件是否适用于首次否决投票:@franzgleichman thx,这多少回答了我的问题,但仍然困惑于20gb的exe如何占用不到20g

在Windows中打开可执行文件时会发生什么?它被加载到RAM中了吗

如果可执行文件的大小为20GB,我是否需要20GB的RAM来运行它

如果我错了,请纠正我RAM中加载的唯一内容是代码二进制/汇编和堆,堆栈如int a=3;3将被初始化为具有特定地址的堆栈或堆

然后RAM向CPU发送信息,如何发送?它到底发送什么


我想知道用C.

thx构建的Windows可执行文件是否适用于首次否决投票:@franzgleichman thx,这多少回答了我的问题,但仍然困惑于20gb的exe如何占用不到20gb的内存。你可能无法在这里得到完整的答案,这很复杂。一个可移植的可执行PE文件一个EXE或DLL包含一个结构,它不仅仅是可执行的代码。NET PE文件甚至更为复杂,因为它包含的代码通常不可在加载它的机器上执行。它包含中间语言IL代码—请将其视为抽象机器的汇编语言。IL是即时的JIT,根据需要逐个函数编译成目标机器语言。如果你想知道所有的细节,那就买一本杰夫·里克特的CLR书details@Flydog57好吧,我希望不是这样expensive@GrandmaXD你像往常一样要求参加一个从几个小时到几个星期的完整课程,更不用说几个月了。。。例如,您可以从这里开始:和