6.3.1 由中间指令产生
汇编
代码
的主要流程
在这一小节,我们可把关注的焦点放在“如何把某条中间
代码
翻译成
汇编
代码
”上。UCC
编译器
的中间
代码
是如下所示的四元式,包括运算符和3个操作数。
当然有些中间
代码
只需要用到opcode和DST就可以了,例如,无条件跳转指令“goto BB2;”就不需要SRC1和SRC2。为了便于
汇编
代码
的
生成
,UCC
编译器
在u
打开“Project → Project Settings”,
选择 C/C++ 选项卡,在“Category”栏选择“Listing Files”
然后在Listing file type栏选择“Assembly with Machine Code”。
重新编译工程后则可以在输出目录看到与每一个.cpp文件同名的.cod文件。
转载于:https://www.cnblogs.c...
VSVAR32.BAT
首先运行它一次,你就可以用
cl
.exe来编译你的
代码
了。
(在vs2005里面未发现该文件,怀疑因该是上级目录的vcvarsall.bat,但是不执行该文件同样可进行命令行编译。)
CL
.exe
编译原理 (预处理>编译>
汇编
>链接)
一般高级语言程序编译的过程:预处理、编译、
汇编
、链接。gcc在后台实际上也经历了这几个过程,我们可以通过-v参数
查看
它的编译细节,如果想看某个具体的编译过程,则可以分别使用-E,-S,-c和 -O,对应的后台工具则分别为cpp,cc1,as,ld。下面我们将逐步分析这几个过程以及相关的内容,诸如语法检查、
代码
调试、
汇编
语言等。
1、预处理
cl
.exe用于
生成
编译文件obj
link.exe用于链接obj,
生成
最终的dll、lib或者exe文件
除非
cl
.exe特别指定/c选项,不然
cl
.exe会默认调用link.exe来链接
生成
的obj文件
注意:
cl
.exe指令选项是严格区分大小写的,而link.exe选项是不区分大小写的
cl
.exe常用选项列表
/nologo 取消显示版权信息
/TC 按C语言方式编译
使用了比较久VC6.0,但是从来没有关注过VC的详细编译过程,刚好同事这两天做反编译工作,所以就查了一下VC的编译工具
cl
的编译设置。
下面简单的说两个我自己比较关注的问题:
1、让VC在编译过程显示详细的参数(去掉/nologo):
那么,编译过成的输出如下:
--------------------Configuration: test - Win32 Debug----...
作者:Lin
Cl
ark <br/>编译:胡子大哈
翻译原文:http://huziketang.com/blog/posts/detail?postId=58c55a3ba6d8a07e449fdd23 <br/>英文原文:A crash course in assembly
转载请注明出处,保留原文链接以及...