[程序源码] C语言转汇编问题

[复制链接]
2616|11
 楼主| crazy2012 发表于 2013-8-24 17:39 来自手机 | 显示全部楼层 |阅读模式
现在用汇编写程序,之前用C比较多,感觉汇编麻烦,比如要做个多字节的除法z=x/y用汇编要写除法子程序,这样太麻烦了,虽说51自带div硬件指令,但是由于多字节除法还得封装下。怎样才能快速的转变过来呢。不想浪费时间鼓捣出来一个子程序,太耽误时间了。有人说用C写算法,然后看生成的Src,找出汇编修改拿来直接用,我看了下,发现里面的东西只是给出了程序的入口出口参数,还得看汇编窗口,汇编窗口又是跳跳的,晕啊。
aimie 发表于 2013-8-24 18:12 | 显示全部楼层
很少见 C转汇编的。。。都是汇编转C 的  
NE5532 发表于 2013-8-24 18:38 | 显示全部楼层
运算和数据类型复杂的,用C处理,硬件相关紧密的,速度至上的,用汇编处理,2手抓,才硬。
 楼主| crazy2012 发表于 2013-8-24 20:34 来自手机 | 显示全部楼层
NE5532 发表于 2013-8-24 18:38
运算和数据类型复杂的,用C处理,硬件相关紧密的,速度至上的,用汇编处理,2手抓,才硬。 ...

是啊,我之前一直用C的,最近遇到一个项目,对速度要求很高,需要用汇编,我自认为对单片机内部构造挺了解的,当时学习单片机的时候只是简单的认识了下指令集的功能,没有写过汇编。一直用C现在这个项目猛地让我用汇编对里面的跳啊跳啊这些我都能看懂,就是让我写思路肯定好慢,不就是凑功能吗。今天做的这个其实也不复杂,里面需要做除法,虽然51里面有DIV命令。但是对于多字节的除法还得自己这个程序,晕死了。这个东西让我用C早都做完了,改用汇编,看了一天命令,烦死了。看来还得需要时间来熟悉。
 楼主| crazy2012 发表于 2013-8-24 20:39 来自手机 | 显示全部楼层
NE5532 发表于 2013-8-24 18:38
运算和数据类型复杂的,用C处理,硬件相关紧密的,速度至上的,用汇编处理,2手抓,才硬。 ...

是啊,我之前一直用C的,最近遇到一个项目,对速度要求很高,需要用汇编,我自认为对单片机内部构造挺了解的,当时学习单片机的时候只是简单的认识了下指令集的功能,没有写过汇编。一直用C现在这个项目猛地让我用汇编对里面的跳啊跳啊这些我都能看懂,就是让我写思路肯定好慢,不就是凑功能吗。今天做的这个其实也不复杂,里面需要做除法,虽然51里面有DIV命令。但是对于多字节的除法还得自己这个程序,晕死了。这个东西让我用C早都做完了,改用汇编,看了一天命令,烦死了。看来还得需要时间来熟悉。
NE5532 发表于 2013-8-24 20:42 | 显示全部楼层
汇编比C更考规范性和技巧,能从规划上省掉的就省掉,比如除法最好不做,你还用的是51,有硬件除法器嘛,我们用的PIC16连除法器都没有,不是更抓狂。
DownCloud 发表于 2013-8-25 04:03 | 显示全部楼层
51汇编还是比较easy的啦
呆板书生 发表于 2013-8-25 09:12 | 显示全部楼层
最好是用混合编程,
罗工2013 发表于 2013-9-7 08:58 | 显示全部楼层
用汇编效率高,速度快。
kingxw 发表于 2013-9-13 09:22 | 显示全部楼层
汇编最直接
受不了了 发表于 2013-9-13 12:12 | 显示全部楼层
根据楼主的发言,你用汇编写的程序很可能还不如C写出来的运行速度快。那些数**算就不要去弄明白汇编是怎么运行的,比如浮点数的运算,用C可能一句话解决了,可汇编需要来回倒腾几百句,估计就没有几个人能看明白
huang1007 发表于 2013-9-14 17:03 | 显示全部楼层
要是对汇编不熟悉的话,空拍很难超过C编译器的效率吧.我一般也就是看看C编译器产生的汇编代码,然后修改C代码来看看能不能达到优化的目的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

939

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部