查看: 3760|回复: 1

DSC整数乘法

[复制链接]

该用户从未签到

2

主题

4

帖子

0

新手上路

Rank: 1

积分
30
最后登录
2016-5-5
发表于 2016-4-30 12:21:49 | 显示全部楼层 |阅读模式
求助各位大神,
我在理解整数乘整数指令时,有一点没想清楚,请大家帮忙看看我哪里想错了。

数据手册如下描述:
整数乘法
有 2 种方法执行整数乘法
使用 IMPY.W 生成16 位的结果,放到累加器的FF1 部分

整数处理代码往往只要求16 位结果,不需要太高的精度。IMPY.W 提供了这种功
能,生成16 位不四舍五入的结果,如附件图 所示。2 个16 位有符号的整型数使用IMPY.W
得到1 个16 位有符号的整数结果,放到累加器的FF1 部分。FF2 符号扩展,FF0 不变。

我的问题是操作数1与操作数2都是20000, 计算结果为20000 * 20000 = 4 0000 0000 (0x 17D7 8400)
如果只取低16位作为结果(0x8400),那计算结果不是出错了吗?
123.jpg
回复

使用道具 举报

该用户从未签到

0

主题

7

帖子

0

新手上路

Rank: 1

积分
26
最后登录
2017-1-11
发表于 2016-12-26 16:08:37 | 显示全部楼层
那用IMPY.L指令就可以了。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-1 09:39 , Processed in 0.081582 second(s), 21 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表