c转换汇编语言
Ⅰ 如何将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。
Ⅱ C语言怎么转换汇编程序
在单片机中,C语言转换成汇编语言有一个小窍门,这要借助于KEILC这个编译软件,步骤如下:
1、运行KEIL,建立工程,导入C语言。
Ⅲ 单片机中,怎样把C语言转化为汇编语言
单片机是没这个能力将C语言转换为汇编语言的,它只知道执行1或0。
汇编语言和C语言都是我们用来跟单片机沟通的语言
只有用软件来编译为单片机可执行的1,0文件
单片机才能运行。
所以要c语言编译为汇编语言是我们所用到的编译器做的事情,比如说
keil
iar
gcc
等的编译器他们都支持C语言编译为汇编语言
并可生成单片机可执行文件。不同的单片机所用的编译器或许不同
Ⅳ 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
Ⅳ 怎么把c语言转换成汇编语言
理论上来说C语言改成汇编是完全可以的,当然实际上还是有一定难度。
1、完全手工根据C语言的流程和目的,改编成汇编语言,这样做工作量很大
2、利用仿真软件,在仿真环境下,是有相应的汇编代码的,这样做工作量相对较小,但可读性较差。
Ⅵ C语言转换成汇编语言
这是用keil自动翻译的,自己整理一下吧。
; FUNCTION delay05s (BEGIN)
;---- Variable 'i' assigned to Register 'R7'
0000 7F05 MOV R7,#05H
0002 ?C0001:
;---- Variable 'j' assigned to Register 'R6'
0002 7EC8 MOV R6,#0C8H
0004 ?C0004:
;---- Variable 'k' assigned to Register 'R5'
0004 7DFA MOV R5,#0FAH
0006 ?C0007:
0006 DDFE DJNZ R5,?C0007
0008 ?C0006:
0008 DEFA DJNZ R6,?C0004
000A ?C0003:
000A DFF6 DJNZ R7,?C0001
000C ?C0010:
000C 22 RET
; FUNCTION delay05s (END)
; FUNCTION main (BEGIN)
0000 ?C0011:
;---- Variable 'j' assigned to Register 'R4'
0000 7C01 MOV R4,#01H
;---- Variable 'i' assigned to Register 'R3'
0002 E4 CLR A
0003 FB MOV R3,A
0004 ?C0013:
0004 EC MOV A,R4
0005 F4 CPL A
0006 F590 MOV P1,A
0008 120000 R LCALL delay05s
000B EC MOV A,R4
000C 25E0 ADD A,ACC
000E FC MOV R4,A
000F 0B INC R3
0010 BB08F1 CJNE R3,#08H,?C0013
0013 ?C0014:
0013 7C80 MOV R4,#080H
0015 E4 CLR A
0016 FB MOV R3,A
0017 ?C0016:
0017 EB MOV A,R3
0018 C3 CLR C
0019 9408 SUBB A,#08H
001B 50E3 JNC ?C0011
001D EC MOV A,R4
001E F4 CPL A
001F F590 MOV P1,A
0021 120000 R LCALL delay05s
0024 EC MOV A,R4
0025 C3 CLR C
0026 13 RRC A
0027 FC MOV R4,A
0028 0B INC R3
0029 80EC SJMP ?C0016
; FUNCTION main (END)
Ⅶ C语言转换成汇编语言
win-tc
可以将C代码编译为汇编代码。
在“运行”,“编译配置”里选取中编译目标为汇编文件。
另外,将其它语言编译为汇编代码不叫“
反汇编
”。
Ⅷ c语言转换为汇编语言
这应该是单片机上面的编程把,编译器加参数是可以直接输出汇编码的
Ⅸ 如何将c语言程序转成汇编语言程序。
如果是VC则在编译器命令行参数再加 /FA 则会生成汇编代码。如果参数是 /FAs 则会同时将源码和汇编代码。
/FA 程序集代码;.asm
/FAc 机器码和程序集代码;.cod
/FAs 源代码和程序集代码;.asm
/FAcs 机器码、源代码和程序集码;.cod
/Fa的用法
/Fa 为编译中的每个源代码文件创建一个源文件.asm。
/Fa文件名 将文件名.asm 放到当前目录中。仅在编译单个源代码文件时有效。
/Fa文件名.扩展名 将文件名.扩展名放到当前目录中。仅在编译单个源代码文件时有效。
/Fa目录\ 为编译中的每个源代码文件创建一个源文件.asm,并将其放到指定目录中。请注意必须有后缀反斜杠。只允许使用当前磁盘上的路径。
/Fa目录\文件名 将文件名.asm 放到指定目录中。仅在编译单个源代码文件时有效。
/Fa目录\文件名.扩展名 将文件名.扩展名放到指定目录中。仅在编译单个源代码文件时有效。
如果你是用gcc 或 g++编译器,如dev c++则加入命令行参数 -S 即可