为什么要C和汇编混合编程?

大家都知道单片机(或者DSP、ARM)C语言编程时常加入一些汇编语言,请问为什么要这样呢?我想这肯定体现了C和汇编各自的特点,希望各位高手具体谈谈,谢谢!... 大家都知道单片机(或者DSP、ARM)C语言编程时常加入一些汇编语言,请问为什么要这样呢?我想这肯定体现了C和汇编各自的特点,希望各位高手具体谈谈,谢谢! 展开
 我来答
jinling1441
2008-09-28 · TA获得超过618个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:193万
展开全部
依我的看法,上面两位说的都不对:
一楼:汇编语言是低级语言直接往硬件的寄存器里写入东西:
其实C语言和汇编语言都一样,都会编译成二进制文件机器语言烧录到单片机中,所以没有一楼所说的区别

二楼:在C中也不会有数据损失的,如果你定义好数据类型的话。

单片机中是将C编译成汇编,然后根据汇编编译成机器语言---可执行文件;
其实单片机中经常在C中嵌入汇编,主要是因为时间的关系,因为一条汇编语言执行的时间都是可以知道的,而C指令执行的时间是不可知的,因为C编译器不一样,编译后的汇编也是不一样的,如果用汇编就不会有这种情况。所以在一些精确延时的场合,要嵌入汇编
另外,C的可移植性较强,不同的单片机里,功能要求相同的可以直接拿去用
总之,汇编是程序员可以自己翻译成机器语言的,所以单片机的运行是可以完全掌握的
yaorunlong
2008-09-24 · 超过35用户采纳过TA的回答
知道答主
回答量:162
采纳率:100%
帮助的人:106万
展开全部
单片机里能混合着用的吗?我只知道用C和用汇编去编同一个程序的区别只在于汇编跟细致,比C细致很多。但是工作量太大。C的好处就是工作量小,但是C在翻译到机器语言的过程中不够精细。原因是语言间转化的时候,数据的精确度会有很大的损失。举个例子:如果我有个数据是1.77777.C在转化的时候,可能只留下1.7这个数据。而汇编可以完全保留下来。当然这只是个例子。数只是我瞎举的。意思就是这样。所以在单片机中区分到底是用C还是汇编取决于你要做的工程的大小和所要达到的精确程度。我没参考资料,是上选修课的时候老师说的。不知道对你有没有用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1号评论馆
2008-09-26 · TA获得超过980个赞
知道小有建树答主
回答量:1167
采纳率:0%
帮助的人:420万
展开全部
C编程的可读性和移植行比较好

某些需要实时的地方或者空间紧张的地方用汇编
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dirksen
2008-09-23
知道答主
回答量:13
采纳率:0%
帮助的人:11万
展开全部
汇编语言比c语言在操控硬件时,运行速度快!
因为汇编语言是低级语言直接往硬件的寄存器里写入东西
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式