3033|7

136

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MSP430汇编能用long型的变量吗 [复制链接]

MSP430汇编能用long型的变量吗?C中调用汇编,并使用硬件乘法器,将结果保存在long型的变量sum中。先将高十六位加到sum,然后sum左移16位,移位完了发现移位完了sum为零?这是什么情况?

最新回复

是的,C编译器的效率不高。特别是对特别优秀的指令的支持更差,我对比过CCS编译C2000的情况,发现对执行效率很高的指令,根本就不用。  详情 回复 发表于 2015-9-6 23:05
 
点赞 关注

回复
举报

1193

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
long是32位的变量,MSP430是16位的MCU。
所以应该是不能直接调用32位变量的。只能将其拆分成2个16位的变量分别处理。

点评

嗯,只能操作16位  详情 回复 发表于 2015-9-6 22:21
 
 

回复

2549

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
汇编就不知道了

点评

数据处理要求速度,C写的代码太费时间,只能考虑汇编  详情 回复 发表于 2015-9-6 22:26
 
 
 

回复

1万

帖子

26

TA的资源

裸片初长成(高级)

4
 
MSP430有32位的乘法器,寄存器是32位的,The multiplication result is always 64 bits wide。


但它也有16X16位的乘法指令,别搞混了。

点评

这四个结果寄存器好像也都是16位的,4个16位的就是64位,乘出来的结果好像也要组合一下  详情 回复 发表于 2015-9-6 22:24
 
 
 

回复

136

帖子

0

TA的资源

一粒金砂(中级)

5
 
qiushenghua 发表于 2015-9-6 14:07
long是32位的变量,MSP430是16位的MCU。
所以应该是不能直接调用32位变量的。只能将其拆分成2个16位的变量 ...

嗯,只能操作16位
 
 
 

回复

136

帖子

0

TA的资源

一粒金砂(中级)

6
 
dontium 发表于 2015-9-6 16:12
MSP430有32位的乘法器,寄存器是32位的,The multiplication result is always 64 bits wide。


但它也 ...

这四个结果寄存器好像也都是16位的,4个16位的就是64位,乘出来的结果好像也要组合一下
 
 
 

回复

136

帖子

0

TA的资源

一粒金砂(中级)

7
 

数据处理要求速度,C写的代码太费时间,只能考虑汇编
 
 
 

回复

1万

帖子

26

TA的资源

裸片初长成(高级)

8
 
是的,C编译器的效率不高。特别是对特别优秀的指令的支持更差,我对比过CCS编译C2000的情况,发现对执行效率很高的指令,根本就不用。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表