azfeng
级别: 略有小成
精华主题: 0
发帖数量: 95 个
工控威望: 254 点
下载积分: 1331 分
在线时间: 61(小时)
注册时间: 2008-12-03
最后登录: 2024-07-19
查看azfeng的 主题 / 回贴
楼主  发表于: 2008-12-26 00:12
我想将D0到D20里的20个数据相加,要用什么方法啊,很急哦,望大家帮忙
红亮
级别: 略有小成
精华主题: 0
发帖数量: 214 个
工控威望: 373 点
下载积分: 730 分
在线时间: 113(小时)
注册时间: 2007-07-01
最后登录: 2024-11-18
查看红亮的 主题 / 回贴
1楼  发表于: 2008-12-26 07:02
ld x0 dmeanp d0  d30 k20       ld x0 dmul d30 k20  d32          d32  d33里的值就是20个数据 的总和
zxc6688
工业自动化是我们的目标
级别: 略有小成
精华主题: 1 篇
发帖数量: 385 个
工控威望: 338 点
下载积分: 3994 分
在线时间: 174(小时)
注册时间: 2007-09-11
最后登录: 2024-01-05
查看zxc6688的 主题 / 回贴
2楼  发表于: 2008-12-26 09:14
引用
引用第1楼红亮于2008-12-26 07:02发表的  :
ld x0 dmeanp d0  d30 k20       ld x0 dmul d30 k20  d32          d32  d33里的值就是20个数据 的总和


1楼的方法很好,但指令有错误。

首先,根据楼主的意思是D0---D20里的数相加,这里不应该用32位指令DMEANP、DMULP,要用MEANP、MULP。
其次,D0---D20不是20 位,而是21位。这里要用K21
第三,假如这21位相加后不被整除,那么误差就会很大。

1楼可以仿真试试
[ 此帖被zxc6688在2008-12-26 09:43重新编辑 ]
http://zxc6688.ys168.com/
kingfeng1983
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看kingfeng1983的 主题 / 回贴
3楼  发表于: 2008-12-28 11:31
假如说,将最后的和放在D100中,当然事先RST D100
FOR  K21
ADD  D100  D0Z  D100
INC  Z
NEXT

J假如放在D0中
FORE  K20
ADD  D0  D1Z    D0
INC  Z
NEXT
竹风凉
巧者劳,智者忧,无能者,无所求。蔬食者遨游,泛若不系之舟。
级别: 家园常客
精华主题: 0
发帖数量: 470 个
工控威望: 588 点
下载积分: 516 分
在线时间: 146(小时)
注册时间: 2008-10-16
最后登录: 2022-08-24
查看竹风凉的 主题 / 回贴
4楼  发表于: 2008-12-29 04:22
引用
引用楼主azfeng于2008-12-26 00:12发表的 计算D的总和 :
我想将D0到D20里的20个数据相加,要用什么方法啊,很急哦,望大家帮忙

MOV K19 D0
SFRDP D0 D21 K19
ADDP D20 D21 D20
D1--D20相加存入D20《总和》.
D0--D20是21个数据吧。
题不大,还真费脑筋
[ 此帖被竹风凉在2008-12-29 04:27重新编辑 ]
祸兮福所倚
福兮祸所伏