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