怎么执行自己写的代码?编译链接又是什么意思怎么做到

怎么执行自己写的代码?

知乎有人问:计算机是如何执行一种编程语言的?

很多刚刚入坑的白人可能对此完全没有概念,或者对计算机如何执行我们写下的代码行有一个模糊的概念。


(资料图片)

以x86 CPU为研究对象,我们试着从一个例子来回答这个问题。

1.高级语言

为了编程的方便,伟大的计算机先驱们发明了一种又一种编程语言,让我们可以用最容易理解的语法规则来告诉计算机完成我们想要的功能。

例如,一个C语言程序员写了一行代码:

intsum=a+b;

简单得不能再简单的C语言语句。

但即使如此简单,极其智能的计算机还是无法理解:这是什么?

这时候就需要一个翻译,负责把人类写的高级语言“翻译”成计算机能理解的东西。这个翻译就是编译器。

2.编译链接。

上述高级语言语句经过编译器编译链接后,生成一个以x86架构为目标运行平台的可执行exe/elf。使用反编译工具IDA进行分析后,您可以看到这一行代码在编译后是这样的:

Mov eax,a:将变量a的值存储在eax寄存器中。

Add eax,b:将变量b的值和eax寄存器的值相加,结果保存在eax寄存器中。

Mov sum,eax:将eax寄存器的计算结果写入sum变量

看到了吧,就像把一头大象放进冰箱需要三个步骤一样,计算机完成一个程序员的加法语句,也有三个步骤:取出被加数,加上被加数,写出结果。

作者:轩辕之风

来源:编程技术宇宙(ID:轩辕编码)

推荐DIY文章
全球球精选!关于中餐正式宴会宴请礼仪 中国宴会礼仪和离别礼仪都是什么
每日资讯:比喻恩将仇报的人可以用什么词 为什么要叫没心没肺白眼狼
环球热讯:数码变焦是什么意思 其实数码变焦并不会改变镜头的焦距
开通腾讯QQ所有收费业务要多少钱 一次性运行999个月与一年运行的成本比较
从此刷机不怕丢数据之钛备份使用教程 轻松恢复应用程序
即时:冒险岛名字可以用的特殊符号 一起来了解下有什么不同吧
精彩新闻

超前放送