A. 怎样查看由C语言编译时所生成的汇编代码
这个还真是不太清楚,你可以在软件放.c文件的地方看看是否有汇编的源代码,一般汇编的后缀名是.asm,然后用记事本打开就可以查看了。这个只是我的想法,你可以试试。不一定能成功,希望能帮到你。
B. 如何查看C语言对应的汇编语言
有两种方法:
(1)增加参数/FA:Project->Setting...,C/C++选项卡中的Project Options中增加参数/FA,编译后debug目录中将会增加对应源文件的汇编文件(*.asm)。
(2)如果想查看C语句对应的汇编代码的话,可以这样:F11单步调试,在debug工具栏中选择“disassembly”即可。每行C代码下面就是对应的汇编代码。
例如:
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
C. C++程序进行编译后会生成C语言代码还是汇编代码
不是汇编输出,更不是机器代码,而是链接器输出
当然不是机器代码,否则这个程序就可以在无操作系统环拿早磨境下跑,或是在windows下编译出的exe能够在unix上跑,这当然是不对的。
(当然有直接生成机器码的编译器,不过不是我们常见的)
实际上编译出的程序是消斗操作系统相关的,那是因睁春为不同的操作系统的函数库是不相同的。编译器就是将程序与操作系统的函数库链接(比如屏幕的显示,键盘的输入等)。当然只会有少量机器码。
D. c语言中如何调用汇编程序
1、大碰如果汇编程序是可执行文件,比如exe文件,则可以使用system函数直接调用。比如下面的代码,用system()打开windows上的记事本程序。
#include<stdio.h>
#include<stdlib.h>
intmain()
{
system("notepad.exe");
return0;
}
2、在C语言源码中,可以通过内联汇编来直接编写汇编程序代码。不同禅激的编译器使用内联汇编的方贺仿袜法不同,vc/vs编译器中一般使用__asm关键字来使用内联汇编,gcc编译器一般使用asm关键字来使用内联汇编,以vc6.0为例,下面的代码通过使用内联汇编来计算1+1,并将结果保存到int型变量result中。
#include<stdio.h>
intmain()
{
intresult;
_asm{
moveax,1
movebx,1
addeax,ebx
movresult,eax
}
printf("1+1=%d ",result);
return0;
}
E. 用c-free5.0编译一个C程序后,如何用c-free查看这个程序的反汇编代码呢像OD一样查看
c-free默认的调试器是gdb。可以这样查看:
1.给程序下断点。
2.点击debug菜单下的start debug。程序停在断点处。
3.点击debug菜单最下边的Console.弹出gdb的窗口。
4.在此窗口最下边的命令行编辑框输入:disassemble ,点击“Enter”按钮。就会看到反汇编的代码。
其实就是gdb的运用。
更详细的信息:http://www.linuxidc.com/Linux/2014-10/108574.htm
F. keil怎么看每段c语言对应的汇编
首先当然是要编译成功
然后, 设置为软仿真 Project->Options for the target ........ ->Debug-> Use Simulator 勾上, 然后OK
之后Ctrl+F5, Disassembly窗口就会出现(如果没有出现, 就View->Disassemly Windown), 之后你想看那部分C代码的汇编, 点鼠标左键点一下C代码, Disassembly窗口会显示相应的汇编代码
G. dev c++中怎么看c代码生成的汇编代码
dev是用g++编译器的,g++的话 带个命令 -S会生产汇编的源陆雀文件,可以用记事敬悉手本打开 例如在亮嫌控制台里 g++ -S hello.c 会生产一个.s的文件,就是汇编源文件了