问题描述:
请问C语言如何转换成汇编语言?请问用什么工具可以实现?
请大家帮我把这个C语言转换成汇编语言下,谢谢!
59秒自动计数器
#include<reg51.h>
#define uchar unsigned char
uchar j,k,i,a,A1,A2,second
*** it dula=P2^6
*** it wela=P2^7
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}
void delay(uchar i)
{
for(j=ij>0j--)
for(k=125k>0k--)
}
void display(uchar sh_c,uchar g_c)
{
dula=0
P0=table[sh_c]
dula=1
dula=0
wela=0
P0=0xfe
wela=1
wela=0
delay(5)
P0=table[g_c]
dula=1
dula=0
P0=0xfd
wela=1
wela=0
delay(5)
}
void main()
{
while(1)
{
second++
if(second==60)
second=0
A1=second/10
A2=second%10
for(a=50a>0a--)
{ display(A1,A2)}
}
}
十分感谢,小弟初学,请见谅!!
解析:
你做的是单片机的C,那你用KEIL就可以进行反汇编。找到view->disassembly就可以看到汇编代码。
如果是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 即可
在单片机中,C语言转换成汇编语言有一个小窍门,这要借助于KEILC这个编译软件,步骤如下:
1、运行KEIL,建立工程,导入C语言。
2、编译生成HEX文件,按CTRL+F5进入DEBUG模式。
3、点击View菜单,选择Disassembly Window打开汇编窗口,就可以看到C以及对应的汇编代码了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)