读书人

【新人】编译器转换的汇编语言语句直接

发布时间: 2012-03-21 13:33:15 作者: rapoo

【新人求助】编译器转换的汇编语言语句直接被执行吗?
我看有关编译原理的书,编译器都是将高级语言代码转换成为汇编或机器语言代码,可是转换为汇编语言代码的怎么转换成为OBJ或者EXE呢?难道要用NASM/MASM/FASM再次编译吗?我在pudn下载了很多编译器的源码,不管是C还是其他我都没有看到转换成为机器语言的语句。

求助:编译器如何将高级语言代码转换成为机器语言?如果是转换为汇编语言代码,那该如何编译呢?还要再调用编译器编译么?我也学过一些汇编,从没听说过汇编语言代码可以直接被执行啊

[解决办法]
我给出一个以前版本gcc的编译顺序吧。源文件(.c)->预处理(比如处理宏定义等)->纯C->编译器->汇编程序->汇编器->目标文件->连接器(包括库文件)->可执行文件
[解决办法]
C\C++语言与汇编都是只和2进制的机器码有关系。
C\C++编译器会直接把高级语言编译为机器码(既2进制代码)。
汇编语言是由二进制代码反向翻译出的助记符而已。

所以,C\C++语言与汇编语言的关系是通过机器码,产生的间接关系。

读书人网 >C++

热点推荐