首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么将汇编语言转换为机器码

什么将汇编语言转换为机器码
EN

Stack Overflow用户
提问于 2014-07-25 12:35:11
回答 4查看 47.5K关注 0票数 8

我是编程新手,我是从C++语言开始的,据我所知,C++语言是由C++编译器(例如:Visual Studio)转换为汇编语言的,但我试图查找是什么将汇编语言转换为计算机可以理解和执行的机器代码,但我找不到答案。

因此,问题是,汇编语言在哪里以及如何转换为机器码?它是由操作系统中集成的某种编译器编写的吗?

提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2014-07-25 13:59:44

一些编译器(如GNU)将C/C++代码转换为汇编代码。名为“汇编程序”的工具将汇编代码转换为机器码,而名为“链接器”的工具将多个机器代码文件连接成一个可执行文件(在Windows下为.EXE)。这些编译器中的大多数允许您将生成的汇编器代码写入文件中,以便您可以查看或修改汇编器代码。

汇编器和链接器是工具链的一部分,这意味着它们通常与编译器一起交付。

然而,一些编译器(如Microsoft)直接将C/C++代码转换为机器语言,因此不再需要汇编器。其中许多编译器无法创建汇编代码,因此您无法将汇编代码写入文件中。

顺便说一句:甚至还有编译器(不是针对C/C++,而是针对其他编程语言)可以直接创建.EXE文件,因此不需要链接器。

票数 11
EN

Stack Overflow用户

发布于 2015-07-08 11:26:13

当编译器将高级代码转换成如下所示的汇编语言时-

  • MOV AX,A;# Move A to Register AX
  • ADD AX,B;# Add B to A
  • IMUL Ax;# Square(A+B)
  • MOV C,AX ;

汇编程序将这些汇编指令转换成机器代码。

汇编指令具有如下典型形式:操作码操作数操作数

如果你查看微处理器手册,你会知道如何将每条指令转换成像1001000这样的二进制形式。一些位用于操作码,一些位用于操作数。

http://www.mathemainzel.info/files/x86asmref.html

票数 6
EN

Stack Overflow用户

发布于 2014-07-25 12:47:35

汇编语言被称为汇编程序的实用程序转换为可执行的机器代码;转换过程称为汇编,或汇编代码。

阅读更多here

干杯!!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24948125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档