如何将C语言代码转换为对应的汇编代码

Python09

如何将C语言代码转换为对应的汇编代码,第1张

VC6.0下有两种方法:

(1)增加参数/FA:Project->Setting...,C/C++选项卡中的Project Options中增加参数/FA,编译后debug目录中将会增加对应源文件的汇编文件(*.asm)。

(2)如果想查看C语句对应的汇编代码的话,可以这样:F11单步调试,在debug工具栏中选择“disassembly”即可。每行C代码下面就是对应的汇编代码。

如果debug工具栏不见了,可在VC上方空白菜单处右键,选择“debug”即可弹出debug工具栏。

例如:

C代码程序:

int main()

{

int a = 3

int b = 4

int c = a + b

printf("c=%d/n", c)

return 0

}

对应的汇编代码程序(部分)如下:

5:int a = 3

00401028 mov dword ptr [ebp-4],3

6:int b = 4

0040102F mov dword ptr [ebp-8],4

7:int c = a + b

00401036 mov eax,dword ptr [ebp-4]

00401039 add eax,dword ptr [ebp-8]

0040103C mov dword ptr [ebp-0Ch],eax

gcc下编译加参数-S,如gcc a.c -S,编译后会自动生成汇编文件a.asm。

C语言源代码,就是依据C语言规则所写出的程序代码,常见的存储文件扩展名为.c文件和.h文件,分别对应C源文件(source file)和C头文件(header file)。

C语言是一门编程语言,简单点说,就是由人类书写按照一定规范书写的字符,通过一定手段(编译链接)转换后,可以让电脑或者其它电子芯片"读懂",并按照其要求工作的语言。在所有的编程语言中,C语言是相对古老而原始的,同时也是在同类语言中更接近硬件,最为高效的编程语言。

相关内容:

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。

当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。

C语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。

好奇葩的代码风格=。=换成汇编大概是下面这个样子,你用下面的代码再发一个问题问问吧。

eor %A0,%2

 mov %1,%A0

 swap %1

 eor %1,%A0

 mov __tmp_reg__,%1

 lsr %1

 lsr %1

 eor %1,__tmp_reg__

 mov __tmp_reg__,%1

 lsr %1

 eor %1,__tmp_reg__

 andi %1,0x07

 mov __tmp_reg__,%A0

 mov %A0,%B0

 lsr %1

 ror __tmp_reg__

 ror %1

 mov %B0,__tmp_reg__

 eor %A0,%1

 lsr __tmp_reg__

这里的%1、%0应该是指变量,对应c中的argv[1]与argv[0]