目标代码、机器代码和汇编代码之间有什么区别?

你能举例说明它们的不同吗?


当前回答

其他答案很好地描述了差异,但你也要求视觉。下面的图表显示了它们从C代码到可执行文件的过程。

其他回答

我认为这些是主要的区别

代码的可读性 控制代码在做什么

可读性可以使代码在创建6个月后得到改进或替换,另一方面,如果性能至关重要,您可能希望使用低级语言来针对生产中的特定硬件,从而获得更快的执行速度。

在我看来,今天的计算机已经足够快,可以让程序员通过OOP快速执行。

这里讨论程序集代码。

汇编语言是一种用于计算机编程的低级语言。它实现了数字机器代码和编程特定CPU架构所需的其他常量的符号表示。”

这里讨论机器代码。

机器代码或机器语言是由计算机中央处理单元直接执行的指令和数据系统。

基本上,汇编代码是一种语言,它由汇编程序(类似于编译器)翻译成目标代码(CPU运行的本机代码)。

汇编是人类可以理解的简短的描述性术语,可以直接转换为CPU实际使用的机器代码。

虽然汇编程序在某种程度上为人类所理解,但它仍然是低水平的。做任何有用的事情都需要大量的代码。

所以我们使用高级语言,如C, BASIC, FORTAN(好吧,我知道我和自己约会过)。当编译这些代码时,会生成目标代码。早期语言以机器语言作为目标代码。

现在的许多语言,如JAVA和c#,通常编译成字节码,这些字节码不是机器代码,而是在运行时容易解释以产生机器代码的字节码。

8b5d32是机器代码

Mov ebx, [ebp+32h]为组装体

lmylib。所以包含8b5d32是目标代码

源代码,汇编代码,机器代码,对象代码,字节代码,可执行文件和库文件。

对于大多数人来说,所有这些术语都非常令人困惑,因为他们认为它们是相互排斥的。请参见图表了解它们之间的关系。下面给出了每个术语的描述。



源代码

人类可读(编程)语言的指令


高级代码

用高级(编程)语言编写的指令 例如,C、c++和Java程序


汇编代码

用汇编语言(一种低级编程语言)编写的指令。 作为编译过程的第一步,高级代码转换为这种形式。它是汇编代码,然后被转换成实际的机器代码。在大多数系统上,这两个步骤作为编译过程的一部分自动执行。 例如,program.asm


目标代码

编译过程的产物。它可以是机器代码或字节代码的形式。 例如,file.o


机器代码

机器语言指令。 例如,a.o ut


字节码

一种中间形式的指令,可由解释器(如JVM)执行。 例如,Java类文件


可执行文件

链接过程的产物。它们是可以被CPU直接执行的机器码。 例如,一个。exe文件。

注意,在某些情况下,包含字节码或脚本语言指令的文件也可能被认为是可执行的。


库文件

有些代码出于不同的原因被编译成这种形式,比如可重用性,然后被可执行文件使用。