关于程序的执行原理

美福种田伯 2009-05-22 04:08:43
这个问题我们抛开托管和非托管,我只想知道一个程序(机器码)在windows被运行时,是windows一边运行一边解释它?还是CPU一边运行一边解释?我对这个概念挺模糊的,因为在linux中的程序文件格式又不是一样的。

高手来解释一下吧,如果说是windows来解释的话,那windows又是谁来解释的呢?

总之是很糊涂...
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aspnet30 2009-07-06
  • 打赏
  • 举报
回复
内存分配,线程执行,内存堆栈,转换成汇编再到机器码0101..
一步步是如何进行的??

zhushoudong 2009-05-22
  • 打赏
  • 举报
回复
顶了
ginni215 2009-05-22
  • 打赏
  • 举报
回复
我的理解是:程序集先通过windows编译成中间代码,然后在调用.net的JIT去把中间代码转换成机器代码,
然后机器代码再控制CPU去执行,一直是这么理解的,也不知道具体是怎么样的,关注~~
iloveppmm 2009-05-22
  • 打赏
  • 举报
回复
当然是cpu了 。 windows又不是编译器怎么会解释??

操作系统只不过是把可执行程序加载到内存中,然后把控制权交给应用程序。代码的执行只能是cpu解释的。net 也不过是MSIL在CLR中解释然后由cpu执行而已。
gxj760998 2009-05-22
  • 打赏
  • 举报
回复
。net的不一样哦,多了一层。跟JAVA的包又不一样!
不过追究到底还是执行CPU指令。
wsxqaz 2009-05-22
  • 打赏
  • 举报
回复
计算机只是0和1的组成,任何编译好的东西其实就已经是0和1了,计算机不会去解释任何东西,编译只是将你的那些代码一层一层的去替换(比如C#先替换为li->再替换为C->再替换为汇编->再替换为0和1)
wsxqaz 2009-05-22
  • 打赏
  • 举报
回复
你用过金山游侠改游戏挖?你看到的是什么?ok
鸭梨山大帝 2009-05-22
  • 打赏
  • 举报
回复
各种CPU有各自的汇编指令集,不论何种操作系统,最终执行指令的是CPU,CPU来执行Windows的指令,Windows不是谁来解释而是发送汇编指令给CPU(仅讨论CPU)

110,569

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧