当前位置:首页 » 编程语言 » c语言转化为汇编

c语言转化为汇编

发布时间: 2022-09-10 01:08:55

A. 如何将c语言代码转换为对应的汇编代码

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。

B. C语言转换成汇编语言

win-tc
可以将C代码编译为汇编代码。
在“运行”,“编译配置”里选取中编译目标为汇编文件。
另外,将其它语言编译为汇编代码不叫“
反汇编
”。

C. c语言转换为汇编语言

这应该是单片机上面的编程把,编译器加参数是可以直接输出汇编码的

D. keil怎样把C语言转换成单片机汇编语言

1、打开Keil,新建一个51工程,同时新建一个main.c文件,并加入到工程源代码当中。

E. C语言怎样转换成汇编语言

keilc里面,如果单片机c语言编译完成后,可以进入debug仿真模式,那么打开disassembly
windows窗口,就可以看到c及对应的汇编。

F. 怎么把c语言转换成汇编语言

理论上来说C语言改成汇编是完全可以的,当然实际上还是有一定难度。

1、完全手工根据C语言的流程和目的,改编成汇编语言,这样做工作量很大

2、利用仿真软件,在仿真环境下,是有相应的汇编代码的,这样做工作量相对较小,但可读性较差。

G. c语言转换成汇编语言

如下即可:

ORG 0000H
LJMP START
ORG 0003H
LJMP X0_INT
ORG 0013H
LJMP X1_INT
ORG 0030H
START:
SETB IT0
SETB IT1
SETB EX0
SETB EX1
SETB EA
;----------------------
MOV A, #0FEH
LOOP:
MOV P1, A
CALL DELAY
RL A
SJMP LOOP
;----------------------
X0_INT:
PUSH ACC
PUSH PSW
SETB RS0
MOV A, #0F0H
MOV R2, #6
X0_1:
MOV P1, A
CALL DELAY
CPL A
DJNZ R2, X0_1
POP PSW
POP ACC
RETI
;----------------------
X1_INT:
PUSH ACC
PUSH PSW
SETB RS1
MOV A, #0AAH
MOV R2, #6
X1_1:
MOV P1, A
CALL DELAY
CPL A
DJNZ R2, X1_1
POP PSW
POP ACC
RETI
;----------------------
DELAY:
MOV R5, #3
DJNZ R7, $
DJNZ R6, $ - 2
DJNZ R5, $ - 4
RET
;----------------------
END

H. 如何把一段C语言转换成汇编语言

1: #define N 30
2: #include<stdio.h>
3: void main()
4: {
00401010 push ebp
00401011 mov ebp,esp
00401013 sub esp,6Ch
00401016 push ebx
00401017 push esi
00401018 push edi
00401019 lea edi,[ebp-6Ch]
0040101C mov ecx,1Bh
00401021 mov eax,0CCCCCCCCh
00401026 rep stos dword ptr [edi]
5: struct student
6: {
7: int xuehao;
8: char name[10];
9: int age;
10: int score[3];
11:
12: }stu;
13: int i, j, temp=0;
00401028 mov dword ptr [ebp-2Ch],0
14: for(i=0; i<N; i++)
0040102F mov dword ptr [ebp-24h],0
00401036 jmp main+31h (00401041)
00401038 mov eax,dword ptr [ebp-24h]
0040103B add eax,1
0040103E mov dword ptr [ebp-24h],eax
00401041 cmp dword ptr [ebp-24h],1Eh
00401045 jge main+0D4h (004010e4)
15: {
16: scanf("%d %s %d", &stu.xuehao, &stu.name, &stu.age);
0040104B lea ecx,[ebp-10h]
0040104E push ecx
0040104F lea edx,[ebp-1Ch]
00401052 push edx
00401053 lea eax,[ebp-20h]
00401056 push eax
00401057 push offset string "%d %s %d" (00420f94)
0040105C call scanf (0040d9e0)
00401061 add esp,10h
17: printf("%d %s %d\n", stu.xuehao, stu.name, stu.age);
00401064 mov ecx,dword ptr [ebp-10h]
00401067 push ecx
00401068 lea edx,[ebp-1Ch]
0040106B push edx
0040106C mov eax,dword ptr [ebp-20h]
0040106F push eax
00401070 push offset string "%d %s %d\n" (00420f88)
00401075 call printf (00401190)
0040107A add esp,10h
18: for(j =0; j<3; j++)
0040107D mov dword ptr [ebp-28h],0
00401084 jmp main+7Fh (0040108f)
00401086 mov ecx,dword ptr [ebp-28h]
00401089 add ecx,1
0040108C mov dword ptr [ebp-28h],ecx
0040108F cmp dword ptr [ebp-28h],3
00401093 jge main+0BEh (004010ce)
19: {
20:
21: scanf("%d", &stu.score[j]);
00401095 mov edx,dword ptr [ebp-28h]
00401098 lea eax,[ebp+edx*4-0Ch]
0040109C push eax
0040109D push offset string "%d" (0042001c)
004010A2 call scanf (0040d9e0)
004010A7 add esp,8
22: printf("%d",stu.score[j]);
004010AA mov ecx,dword ptr [ebp-28h]
004010AD mov edx,dword ptr [ebp+ecx*4-0Ch]
004010B1 push edx
004010B2 push offset string "%d" (0042001c)
004010B7 call printf (00401190)
004010BC add esp,8
23: temp = temp + stu.score[j];
004010BF mov eax,dword ptr [ebp-28h]
004010C2 mov ecx,dword ptr [ebp-2Ch]
004010C5 add ecx,dword ptr [ebp+eax*4-0Ch]
004010C9 mov dword ptr [ebp-2Ch],ecx
24: }
004010CC jmp main+76h (00401086)
25: printf("total score = %d\n", temp);
004010CE mov edx,dword ptr [ebp-2Ch]
004010D1 push edx
004010D2 push offset string "total score = %d\n" (00420f74)
004010D7 call printf (00401190)
004010DC add esp,8
26: }
004010DF jmp main+28h (00401038)
27: }
004010E4 pop edi
004010E5 pop esi
004010E6 pop ebx
004010E7 add esp,6Ch
004010EA cmp ebp,esp
004010EC call __chkesp (00401210)
004010F1 mov esp,ebp
004010F3 pop ebp
004010F4 ret

我不晓得是不是这样,我不懂汇编....

I. C语言转汇编

1、完全手工根据C语言的流程和目的,改编成汇编语言,这样做工作量很大
2、利用仿真软件,在仿真环境下,是有相应的汇编代码的,这样做工作量相对较小,但可读性较差。

J. 单片机中,怎样把C语言转化为汇编语言

单片机是没这个能力将C语言转换为汇编语言的,它只知道执行1或0。
汇编语言和C语言都是我们用来跟单片机沟通的语言
只有用软件来编译为单片机可执行的1,0文件
单片机才能运行。
所以要c语言编译为汇编语言是我们所用到的编译器做的事情,比如说
keil
iar
gcc
等的编译器他们都支持C语言编译为汇编语言
并可生成单片机可执行文件。不同的单片机所用的编译器或许不同

热点内容
win7的缓存文件夹 发布:2025-01-12 23:32:12 浏览:954
安卓哪个文件锁好 发布:2025-01-12 23:31:23 浏览:325
怎么让安卓用苹果耳机有弹窗 发布:2025-01-12 23:30:34 浏览:958
oracle存储过程有返回值 发布:2025-01-12 23:30:34 浏览:7
用友服务器怎样同步ip 发布:2025-01-12 23:29:52 浏览:979
qt编译vlcqt库 发布:2025-01-12 23:24:45 浏览:244
攻击linux服务器 发布:2025-01-12 23:17:01 浏览:6
天籁哪个配置亲民 发布:2025-01-12 23:16:26 浏览:482
零售通交易密码是什么 发布:2025-01-12 23:13:02 浏览:319
监控器压缩 发布:2025-01-12 22:51:29 浏览:248