为什么要C和汇编混合编程?
大家都知道单片机(或者DSP、ARM)C语言编程时常加入一些汇编语言,请问为什么要这样呢?我想这肯定体现了C和汇编各自的特点,希望各位高手具体谈谈,谢谢!...
大家都知道单片机(或者DSP、ARM)C语言编程时常加入一些汇编语言,请问为什么要这样呢?我想这肯定体现了C和汇编各自的特点,希望各位高手具体谈谈,谢谢!
展开
4个回答
展开全部
依我的看法,上面两位说的都不对:
一楼:汇编语言是低级语言直接往硬件的寄存器里写入东西:
其实C语言和汇编语言都一样,都会编译成二进制文件机器语言烧录到单片机中,所以没有一楼所说的区别
二楼:在C中也不会有数据损失的,如果你定义好数据类型的话。
单片机中是将C编译成汇编,然后根据汇编编译成机器语言---可执行文件;
其实单片机中经常在C中嵌入汇编,主要是因为时间的关系,因为一条汇编语言执行的时间都是可以知道的,而C指令执行的时间是不可知的,因为C编译器不一样,编译后的汇编也是不一样的,如果用汇编就不会有这种情况。所以在一些精确延时的场合,要嵌入汇编
另外,C的可移植性较强,不同的单片机里,功能要求相同的可以直接拿去用
总之,汇编是程序员可以自己翻译成机器语言的,所以单片机的运行是可以完全掌握的
一楼:汇编语言是低级语言直接往硬件的寄存器里写入东西:
其实C语言和汇编语言都一样,都会编译成二进制文件机器语言烧录到单片机中,所以没有一楼所说的区别
二楼:在C中也不会有数据损失的,如果你定义好数据类型的话。
单片机中是将C编译成汇编,然后根据汇编编译成机器语言---可执行文件;
其实单片机中经常在C中嵌入汇编,主要是因为时间的关系,因为一条汇编语言执行的时间都是可以知道的,而C指令执行的时间是不可知的,因为C编译器不一样,编译后的汇编也是不一样的,如果用汇编就不会有这种情况。所以在一些精确延时的场合,要嵌入汇编
另外,C的可移植性较强,不同的单片机里,功能要求相同的可以直接拿去用
总之,汇编是程序员可以自己翻译成机器语言的,所以单片机的运行是可以完全掌握的
展开全部
单片机里能混合着用的吗?我只知道用C和用汇编去编同一个程序的区别只在于汇编跟细致,比C细致很多。但是工作量太大。C的好处就是工作量小,但是C在翻译到机器语言的过程中不够精细。原因是语言间转化的时候,数据的精确度会有很大的损失。举个例子:如果我有个数据是1.77777.C在转化的时候,可能只留下1.7这个数据。而汇编可以完全保留下来。当然这只是个例子。数只是我瞎举的。意思就是这样。所以在单片机中区分到底是用C还是汇编取决于你要做的工程的大小和所要达到的精确程度。我没参考资料,是上选修课的时候老师说的。不知道对你有没有用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C编程的可读性和移植行比较好
某些需要实时的地方或者空间紧张的地方用汇编
某些需要实时的地方或者空间紧张的地方用汇编
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
汇编语言比c语言在操控硬件时,运行速度快!
因为汇编语言是低级语言直接往硬件的寄存器里写入东西
因为汇编语言是低级语言直接往硬件的寄存器里写入东西
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询