这样改就对了:
MOV K8192 D0
MOV K1 D1
MUL D0 D1 D2
DSUB D2 K1 D10
DDIV D10 K4 D12
MUL后的值是32位的,保存在D2和D3中,所以想用这个值去代入运算,必须加D,DSUB D2 K1 D10 等于(D3,D2)--1 =D10
这样才对,另外D10也是32位的,所以下面应该是DDIV 才能计算正确。这个比较特殊,一个带符号的16位显示的范围是+/-32767,所以32768在D3,D2中是这样的:
00000000 00000000 100000000 00000000 (0为正,1为负),如果没有加D,那只是D2代入,D3被忽略,默认为1,所以此时D2会显示 -32768,再减个1,为-32769,超出了范围,所以,D10的值此时为0。说了这么多,总之加D就对啦!
[ 此帖被dongguansae在2013-03-29 12:09重新编辑 ]