交叉汇编器和编译程序的区别
交叉汇编器
交叉汇编器是指运行在具有一种处理器的计算机上,但为另一种处理器生成机器码的汇编器。例如,如果我们使用带有8086兼容机器语言的PC来为8085处理器生成机器码,我们需要一个跨汇编程序,它运行在与PC兼容的机器上,但生成8085助记符的机器码。它以汇编语言为输入,以机器语言为输出。
图- Cross-Assembler
在上面的框图中,我们可以看到有一个汇编程序运行在机器B上,但是它将机器A的汇编代码转换成机器代码,这个汇编程序就是Cross-assembler。
Cross-Assembler的特点:
- 跨汇编器用于将汇编语言转换为二进制机器码。
- 交叉汇编器也被用来开发在游戏主机和其他小型电子系统上运行的程序,而这些系统本身无法运行开发环境。
- 交叉装配可用于低功率系统的快速开发。
- c64是交叉汇编程序的最好例子。
编译器
编译器是一种软件(程序),它把源代码从高级编程语言翻译成机器级别的语言。它不像汇编程序的翻译那么简单。它必须执行几个步骤以机器代码形式生成目标文件。编译器的主要工作是检查各种限制、范围、错误等。将高级语言转换为机器语言的过程被称为编译。如果代码中有错误,那么它将给出错误。
图——编译器
编译器的特点:
- 程序执行完成后,编译器的第一个任务是创建。obj文件,然后创建。exe文件。
- 编译器管理代码和变量的存储。
- 编译器负责代码的正确性并突出显示错误。
- 编译器比跨汇编器更智能。
- MinGW、javac是编译器的例子。
交叉汇编器和编译器的区别:
S.No. | 交叉汇编器 | 编译器 |
---|---|---|
1 | 跨汇编器是一种运行在具有一种处理器的计算机上,但为不同类型的处理器生成机器的汇编器。 | 编译器用于将源代码从高级语言转换为机器语言。 |
2 | 跨汇编程序输入汇编语言代码。 | 编译器输入源代码。 |
3 | 交叉汇编器不能一次完成这个任务。 | 编译器可以一次将整个代码转换成机器语言。 |
4 | 交叉汇编器不那么智能。 | 它比跨汇编器更智能。 |
5 | 交叉汇编器的输出是二进制代码。 | 编译器的输出是机器码。 |
6 | 交叉汇编器可以同时与两个处理器协同工作。 | 而编译器每次只在一个处理器上工作。 |
7 | 交叉汇编程序的例子是c64。 | 编译实例有GCC, javac, MinGW等。 |