汇编程序(assembler)和编译程序(compiler)的区别

汇编程序和编译器的区别在于编译器获取源代码并将其转换为汇编代码,而汇编程序则获取编译器生成的汇编代码并将其转换为机器代码。...

主要区别

汇编程序和编译器的区别在于编译器获取源代码并将其转换为汇编代码,而汇编程序则获取编译器生成的汇编代码并将其转换为机器代码。

汇编程序(assembler) vs. 编译器(compiler)

在程序执行中起着最重要作用的两个术语是编译器和汇编程序。编译器的工作是获取经过预处理的源代码并将其转换为汇编代码。然后汇编程序的工作就是从编译器中获取汇编代码并将其转换为机器代码。如果我们讨论主要的区别,那么汇编程序和编译器的主要区别是编译器获取源代码并将其转换为汇编代码,而汇编程序使用编译器生成的汇编代码并将其转换为机器代码。用源语言编写的程序由编译器读取。编译器是一个计算机程序,它将源代码转换为汇编语言,并将汇编语言代码发送给汇编程序。编译器的类型有单通道编译器、多通道编译器、加载和执行编译器以及调试和优化编译器。汇编程序获取编译器生成的汇编代码并将其转换为机器代码。汇编程序的主要工作是将数据作为输入,形成可重定位的机器代码。有编译器可以执行汇编程序的任务并直接生成机器代码,但这并不意味着我们不能研究汇编程序的功能。汇编代码和机器代码有很多不同。所有这些不同类型的编译器执行不同的功能,并且根据工作的不同而不同。汇编代码是机器代码的助记符版本,而机器代码使用二进制代码来表示内存地址的操作。在汇编程序中有两个过程,第一个过程标识汇编代码并将代码存储在符号表中,第二个过程再次扫描代码并对代码执行操作。编译有两个步骤,一个步骤是分析部分,在这一部分中,源代码被分成几部分并执行中间表示。在合成部分,目标代码形成中间表示。编译器的阶段包括词法分析器、语法分析器、语义分析器、中间代码生成、代码优化器、代码生成器、符号表和错误处理程序。

比较图

汇编程序编译器
汇编程序是一种计算机程序,它将编译器生成的汇编代码转换成机器代码编译器是一个计算机程序,它将源代码转换为汇编代码
输入
汇编程序输入汇编语言代码编译器输入源代码
阶段
汇编程序的相位为第一阶段和第二阶段。编译器的阶段包括词汇分析器、语法分析器、语义分析器、生成的中间代码、代码优化器、代码生成器、符号表和错误处理程序
产出
汇编程序的输出是二进制代码编译器的输出是代码的助记版本。

什么是编辑者(a compiler)?

用源语言编写的程序由编译器读取。编译器是一个计算机程序,它将源代码转换为汇编语言,并将汇编语言代码发送给汇编程序。编译器的类型有单通道编译器、多通道编译器、加载和执行编译器以及调试和优化编译器。所有这些不同类型的编译器执行不同的功能,并且根据工作的不同而不同。编译有两个步骤,一个步骤是分析部分,在这一部分中,源代码被分成几部分并执行中间表示。在合成部分,目标代码形成中间表示。编译器的阶段包括词法分析器、语法分析器、语义分析器、中间代码生成、代码优化器、代码生成器、符号表和错误处理程序。

汇编程序和编译器不是相同的进程,但是它们执行的工作与生成源程序的对象代码并将其交给链接器所做的工作相同。链接器的主要过程是在链接器完成此工作后,获取对象代码并生成程序的可执行代码,并将代码分配给加载程序。有一些内置的库和头文件,它们使用高级语言。在内置库中定义了一些库函数。这些函数由链接器链接到库函数。如果找不到特定函数的库函数,则会通知编译器。当有一个大程序时,它被分成更小的程序,即模块。对象模块是在编译或组装这些模块时生成的。链接器必须将整个程序合并在一起。链接器有两种类型:一种是链接编辑器,它生成重新定位的可执行模块,另一种是一种动态链接器,将外部模块链接到加载模块生成为止。必须执行的程序存在于主内存中。加载程序,在操作系统中加载可执行文件。加载程序将内存空间分配给主内存中的可执行模块。有三种类型的装载机:绝对装载机、可重定位装载机和动态运行时加载。这三种装载机有不同的加载方式,即绝对加载法、可重定位加载法和动态运行时加载法。绝对加载程序将程序的可执行文件加载到相同的主内存位置。在绝对装载程序中,程序员必须知道分配。重新定位加载程序编译或组装实际的主内存地址。动态运行时加载程序,绝对内存程序是在执行指令时生成的。

什么是汇编程序(assembler)?

汇编程序获取编译器生成的汇编代码并将其转换为机器代码。汇编程序的主要工作是将数据作为输入,形成可重定位的机器代码。有编译器可以执行汇编程序的任务并直接生成机器代码,但这并不意味着我们不能研究汇编程序的功能。汇编代码和机器代码有很多不同。汇编代码是机器代码的助记符版本,而机器代码使用二进制代码来表示内存地址的操作。在汇编程序中有两个过程是预成型的,第一个过程标识汇编代码并将代码存储在符号表中,然后第二个过程再次扫描代码并对代码执行操作。

主要区别

  1. 汇编程序是一种将编译器生成的汇编代码转换成机器代码的计算机程序,而编译器则是一种获取源代码并将其转换为汇编代码的计算机程序。
  2. 汇编程序输入汇编语言代码,而编译器输入源代码。
  3. 汇编程序的阶段是第一阶段和第二阶段,编译器的阶段是词法分析器、语法分析器、语义分析器、生成的中间代码、代码优化器、代码生成器、符号表和错误处理程序。
  4. 汇编程序的输出是二进制代码,而编译器的输出是代码的助记符版本。

对比视频

  • 发表于 2020-08-14 06:57
  • 阅读 ( 365 )
  • 分类:IT

你可能感兴趣的文章

编译时间(compile time)和运行时(runtime)的区别

...以表格形式显示编译时与运行时 6. 摘要 什么是编译时间(compile time)? 程序员可以用编程语言向计算机发出指令。程序员使用的大多数编程语言都是高级编程语言。它们的语法与英语相似。这些语言很容易被人类阅读和理解。源...

  • 发布于 2020-10-19 10:25
  • 阅读 ( 774 )

机器语言(machine language)和汇编语言(assembly language)的区别

...别在于,机器语言是由计算机直接执行的,汇编语言需要汇编程序转换成机器代码或目标代码,由CPU执行。 目录 1. 概述和主要区别 2. 什么是机器语言 3. 什么是汇编语言 4. 机器语言与汇编语言的相似性 5. 并列比较-机器语言与...

  • 发布于 2020-10-20 02:53
  • 阅读 ( 639 )

编译(compiled)和解释语言(interpreted language)的区别

...格式。一个称为编译器的程序进行这种转换。 可用性 –编译程序比解释程序运行得快,但解释程序可以在程序运行时进行修改。这使得解释程序非常适合编写现场表演软件。使用编译过的语言会很好,因为在编译源代码时会发...

  • 发布于 2021-06-26 05:11
  • 阅读 ( 768 )

编译程序(compiler)和交叉编译器(cross compiler)的区别

...叉编译器,编程,重定目标,可重定目标编译器 什么是编译程序(a compiler)? 计算机程序由一组指令组成,供计算机执行特定的任务。大多数计算机程序是用高级编程语言编写的。因此,计算机无法理解这些程序。因此,它们被...

  • 发布于 2021-06-30 18:25
  • 阅读 ( 354 )

石斑鱼类(ide)和编译程序(compiler)的区别

...提供了所有必要的工具,使开发过程更加容易。 什么是编译程序(a compiler)? 计算机程序是用高级编程语言编写的。程序员很容易理解这些程序或源代码,但计算机却不能理解。因此,源代码被转换成机器可理解的机器代码。编...

  • 发布于 2021-07-01 03:13
  • 阅读 ( 395 )

机器代码(machine code)和汇编语言(assembly language)的区别

...的语言,而汇编语言是一种低级编程语言,需要一种称为汇编程序的软件将其转换成机器代码。 程序员用编程语言编写计算机程序。程序是执行特定任务的一组指令。程序设计语言主要有三类:高级程序设计语言、汇编语言和...

  • 发布于 2021-07-01 03:33
  • 阅读 ( 812 )

链接器加载程序(linker loader)和编译程序(compiler)的区别

...别的比较 关键术语 编译器、链接器、加载程序 什么是编译程序(a compiler)? 程序是执行某项任务的一组指令。它也被称为源代码。程序员能理解源代码,但CPU不能理解。因此,有必要将源代码转换为机器可理解的格式。 Figure 1:...

  • 发布于 2021-07-01 04:45
  • 阅读 ( 674 )

口译译员(interpreter)和jit编译器(jit compiler)的区别

...如Python、Perl、Ruby和PHP)速度较慢。 什么是jit编译器(jit compiler)? javac编译器将Java源代码转换成字节码。Java虚拟机(JVM)可以执行这个字节码。它将字节码转换成等效的机器码,这样CPU就可以执行程序中定义的任务。JIT代表即...

  • 发布于 2021-07-01 05:51
  • 阅读 ( 525 )

单程(single pass)和多程编译器(multipass compiler)的区别

... 1.“pass1和2编译器。”Scribd,Scribd,这里有。2一个通过编译程序。“维基百科,维基媒体基金会,23三月2018,这里有。3。”《维基百科》,维基媒体基金会,8,2018,这里有。2、“一次编译程序”,维基百科,维基媒体基金会...

  • 发布于 2021-07-01 06:07
  • 阅读 ( 528 )

阶段(phases)和编译过程(passes of compiler)的区别

...译器,阶段,过程 什么是编译器的各个阶段(the phases of compiler)? 编译过程中有一系列步骤。每个阶段从上一阶段获取输入。从一个阶段输出到下一个阶段。 首先,源代码要经过词法分析。它以字符流的形式扫描源代码,并将...

  • 发布于 2021-07-01 08:20
  • 阅读 ( 206 )
qjejr8843
qjejr8843

0 篇文章

相关推荐