打印

谁能讲讲啥时候必须使用汇编语言啊

[复制链接]
673|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanghqi|  楼主 | 2016-8-18 22:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
heweibig| | 2016-8-18 22:07 | 只看该作者
汇编语言并不是改善效能的灵丹妙药。

使用特权

评论回复
板凳
wyjie| | 2016-8-18 22:09 | 只看该作者
嗯,根据研究,大部分程序效率不佳的原因首先一类自算法本身,其次是编程习惯,例如用了过多不必要的循环或判断。

使用特权

评论回复
地板
wyjie| | 2016-8-18 22:10 | 只看该作者
和CPU特性有关的主要是资料存取的效能问题,假设CPU操作缓存器或外部内存是以32bit为单位,那么在程序中每次操作IB(char)的效能当然比一次读出4B(long)到缓存器中的效能差。

使用特权

评论回复
5
jiajs| | 2016-8-18 22:12 | 只看该作者
对,通过改善程序的算法和多加注意资料存取的效率才是解决效能问题的主要方法

使用特权

评论回复
6
jiajs| | 2016-8-18 22:13 | 只看该作者
然后调整编译器最佳化等级,或将该程序模块搬到效能比较好的RAM里执行

使用特权

评论回复
7
liliang9554| | 2016-8-18 22:14 | 只看该作者
用汇编语言改写绝对是最后的办法。当用汇编语言改写后,再要去找出逻辑与算法的问题时就没不像改C程序那么容易了。

使用特权

评论回复
8
spark周| | 2016-8-18 22:16 | 只看该作者

非得用到汇编去改写某程序时,通常是对效能要求相当严格的应用的

使用特权

评论回复
9
lizye| | 2016-8-18 22:18 | 只看该作者
播放压缩过后的声音文件,解压缩的效能不佳会造成播放时断断续续,这样的效能问题不只是单纯的结果比较慢出来而已,而是代表这个应用根本不能使用。

使用特权

评论回复
10
huangchui| | 2016-8-18 22:19 | 只看该作者
这种状况就必须用上任何的最佳化手段,包含用汇编语言改写。

使用特权

评论回复
11
jiajs| | 2016-8-18 22:22 | 只看该作者
在我的经验中,从没有从头到尾写一个汇编程序文件,我都是修改的,有时候要弄清楚CPU的汇编语言函数和C语言函数要怎么沟通就很令人伤脑筋了

使用特权

评论回复
12
jiajs| | 2016-8-18 22:23 | 只看该作者
就算弄懂了第一个参数是用第几号缓存器存放,超过几个参数就要用stack传递等细节,等换个编译器或CPU又有完全不同的规定,工程师的脑力和时间实在不应浪费在这种事情上。

使用特权

评论回复
13
wyjie| | 2016-8-18 22:24 | 只看该作者
调试的时候要懂。会用吧。

使用特权

评论回复
14
jlyuan| | 2016-8-18 22:26 | 只看该作者
TI的FFT库里面 没有存4096或更长的整数表
旋转因子sin() cos()计算又有些慢
而且复值算出来 还得求幅度lg()
...
以前在单片机上用展示计算lg()
发现很慢
慢过串口查询读数 波形reduce sampling

使用特权

评论回复
15
yszong| | 2016-8-18 22:28 | 只看该作者

啥时候必须使用汇编语言?
1.开发者除了汇编语言外不会其它语言的。
2.该型号MCU没有C编译器的。
3.对执行时间需要特别精确计算的
4.效率问题。

使用特权

评论回复
16
heweibig| | 2016-8-18 22:30 | 只看该作者
用汇编的时候就是对事件要精确控制

使用特权

评论回复
17
wuhany| | 2016-8-18 22:31 | 只看该作者
嗯,或者是你需要对时间有很精确的要求的。

使用特权

评论回复
18
zhanghqi|  楼主 | 2016-8-18 22:34 | 只看该作者
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先

使用特权

评论回复
19
Thorald| | 2016-8-19 10:17 | 只看该作者
对执行时间需要特别精确计算的需要汇编

使用特权

评论回复
20
smilingangel| | 2016-8-19 22:24 | 只看该作者
现在汇编用的越来越少了的,一般都是用C或者c++等高级语言实现了。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

11757

帖子

5

粉丝