现象:将AIW0采集到的的20个整型数据填表,表长20,不算最大填表数和当前填表个数在内。
当采集到20个数据时,即当表填满后,将这20个有效数据以此用I_DI指令转换为DI型整数(I和DI放在不同的寄存器内,绝对没有冲突)。
转换完之后立即将这20个双整数相加,放在VD3000这个寄存器中,结果这20个数据相加之后出现了有符号数为负数的数值。
数据类型转换和数据相加都是在最大填表数和当前填表个数相等的情况下进行的,不会进行反复相加出现溢出现象的,而且每次加完之后我用FIFO指令将表中第一个数据移除,并将VD3000寄存器中的数值送到另外一个寄存器中,然后将VD3000清零。
转换和相加都是挨个进行的,没有用地址寻址的方法,转换使用I_DI 相加是用ADD_DI 相加时用的是 SUM+DI_1=SUM SUM+DI_2=SUM ....一直加到SUM+DI_20=SUM,用了20个转换指令和20个双整数加法指令。编译通通,没有出现问题。
请问是何种原因导致的这种情况?表中的20个数都为正数。