重学计算机组成原理(七)- 程序无法同时在Linux和Windows下运行

javaedge 2019-08-17

云栖社区 linux 函数 windows PTR ADD ask

既然程序最终都被变成了一条条机器码去执行,那为什么同一个程序,在同一台计算机上,在Linux下可以运行,而在Windows下却不行呢?

反过来,Windows上的程序在Linux上也是一样不能执行的

可是我们的CPU并没有换掉,它应该可以识别同样的指令呀!!!

如果你和我有同样的疑问,那这一节,我们就一起来解开。

1 编译、链接和装载:拆解程序执行

写好的C语言代码,可以通过编译器编译成汇编代码,然后汇编代码再通过汇编器变成CPU可以理解的机器码,于是CPU就可以执行这些机器码了

你现在对这个过程应该不陌生了,但是这个描述把过程大大简化了

下面,我们一起具体来看,C语言程序是如何变成一个可执行程序的。

过去几节,我们通过gcc生成的文件和objdump获取到的汇编指令都有些小小的问题

我们先把前面的add函数示例,拆分成两个文件

  • add_lib.c
  • l
登录 后评论
下一篇
冒顿单于
7697人浏览
2019-08-28
相关推荐
Nginx详解一(理论)
666人浏览
2017-11-07 19:06:00
Windows Docker第一时间揭秘
900人浏览
2017-05-02 15:22:00
0
0
0
341