我是编程新手,我从C ++语言开始,据我所知,C ++编译器将C ++语言转换为汇编语言(例如:Visual Studio),但我试着查找将汇编语言转换为汇编语言的内容。机器代码要由计算机理解和执行,但我找不到答案。
所以问题是,汇编语言在何处以及如何转换为机器代码?它是由OS中集成的某种编译器吗?
提前致谢。
答案 0 :(得分:9)
某些编译器(如GNU)将C / C ++代码转换为汇编代码。名为“assembler”的工具将汇编代码转换为机器代码,名为“linker”的工具将多个机器代码文件连接成一个可执行文件(Windows下的.EXE)。大多数编译器允许您将生成的汇编程序代码写入文件,以便查看汇编代码或修改它。
汇编器和链接器是工具链的一部分,这意味着它们通常与编译器一起提供。
然而,有些编译器(如Microsoft)直接将C / C ++代码转换为机器语言,因此不再需要汇编程序。其中许多编译器无法创建汇编代码,因此您无法将汇编代码编写到文件中。
顺便说一句:甚至有编译器(不是C / C ++,但是对于其他编程语言)直接创建.EXE文件,因此不需要链接器。
答案 1 :(得分:5)
当编译器将高级代码转换为汇编语言时,如下所示 -
汇编程序将这些汇编指令转换为机器代码。
汇编指令的典型形式如下:操作码操作数[操作数]
如果查看微处理器手册,您将了解每条指令如何转换为1001000等二进制形式。有些位用于操作码,有些用于操作数。
答案 2 :(得分:2)
答案 3 :(得分:0)
汇编代码具有类似的转换为对象/机器代码的过程,因为它通过称为assembler的东西运行(类似于给定示例中的编译器)。