Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 所有的编程语言都有汇编程序吗_C++_Assembly - Fatal编程技术网

C++ 所有的编程语言都有汇编程序吗

C++ 所有的编程语言都有汇编程序吗,c++,assembly,C++,Assembly,我发现Go语言有自己的汇编程序,C语言的各种编译器都有自己的汇编程序,比如TurboC、LCC、OpemWatcom。但是有些只是一个编译器,比如nasm、gas等。为什么高级语言的编译器带有汇编程序,如果编译器必须将源代码转换成汇编代码,那么所有编程语言都必须有自己的汇编程序。请有人给我解释一下 所有的编程语言都有汇编程序吗 没有 现代C++编译器可以直接输出LVVM中的机器代码或中间目标代码,不需要生成汇编。汇编程序是可选的,如果存在,它将作为程序员检查代码的方便工具提供。只能由一名驾驶员驾

我发现Go语言有自己的汇编程序,C语言的各种编译器都有自己的汇编程序,比如TurboC、LCC、OpemWatcom。但是有些只是一个编译器,比如nasm、gas等。为什么高级语言的编译器带有汇编程序,如果编译器必须将源代码转换成汇编代码,那么所有编程语言都必须有自己的汇编程序。请有人给我解释一下

所有的编程语言都有汇编程序吗

没有


现代C++编译器可以直接输出LVVM中的机器代码或中间目标代码,不需要生成汇编。汇编程序是可选的,如果存在,它将作为程序员检查代码的方便工具提供。

只能由一名驾驶员驾驶一辆特定的汽车吗?不是。这辆车是装配工,可以为多个司机制造

发明一种既记录指令集机器代码又记录汇编语言的处理器符合公司的最大利益。汇编语言不是一种通用的东西,它对每一个汇编器都是非常特殊的,是对它进行解析并将其转换为机器代码的程序。因此,处理器供应商的文档应该使用一些汇编语言使文档可读。促进新处理器的开发或雇佣人员创建汇编程序和其他工具符合他们的最大利益,但如果不是为了验证处理器,您必须始终创建汇编程序。因此,通用汇编程序将存在

然后,编译器供应商当然可以选择支持通用的、竞争对手的、或自己的或任意组合的编译器。做出这些选择的原因可能很多。出于各种原因,一些编译器可能选择不生成汇编语言作为中间步骤,而是直接使用机器代码


典型的泛型重定目标表编译器倾向于支持编译器汇编器链接器模型。该公司可能会做得更多,但会倾向于这种模式。又是哪个汇编程序,哪个链接程序?有很多原因可以解释为什么他们可以自己制作或者支持通用的。但如果他们使用这种模式,他们必须至少选择一种来支持。从事该编译器销售业务的人可能不仅希望控制编译器,还希望控制包括gui在内的所有工具链。他们从开源中获取或自己动手,但控制自己的命运符合他们的最大利益。

并非所有编程语言都是相同的?不,所有编程语言都意味着未编译的语言,即脚本语言是解释的而非编译的,他们不会使用汇编程序……像Java这样的语言不会生成真正的程序,但每次程序启动时都要由另一个软件处理的文件也没有汇编程序,因为它们的文件格式不需要汇编程序。