gpp0603
靜水無為
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 249 個
工控威望: 330 點
下載積分: 10242 分
在線時間: 217(小時)
注冊時間: 2009-11-12
最后登錄: 2024-12-21
查看gpp0603的 主題 / 回貼
樓主  發(fā)表于: 2013-03-28 07:13
MOV  K8192 D0
MOV  K4         D1
MUL D0    D1    D2
SUB  D2   K1    D10
DIV    D10  K4   D12

監(jiān)視發(fā)現(xiàn)到D2值是—32768  D12的值是0,是否運算錯誤,還是值超出范圍
請高手幫忙解釋一下,期待你的回復。
tkggtdkjpl
工欲善其事,必先利其器!
級別: 網(wǎng)絡英雄

精華主題: 1 篇
發(fā)帖數(shù)量: 3443 個
工控威望: 20982 點
下載積分: 28515 分
在線時間: 1765(小時)
注冊時間: 2010-01-03
最后登錄: 2024-12-22
查看tkggtdkjpl的 主題 / 回貼
1樓  發(fā)表于: 2013-03-28 07:45
MUL D0    D1    D2      占用D2 D3
SUB  D2   K1    D10
DIV    D10  K4   D12

地址重疊!
自動化單機,生產(chǎn)線,項目編程調(diào)試!
gpp0603
靜水無為
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 249 個
工控威望: 330 點
下載積分: 10242 分
在線時間: 217(小時)
注冊時間: 2009-11-12
最后登錄: 2024-12-21
查看gpp0603的 主題 / 回貼
2樓  發(fā)表于: 2013-03-28 07:53
那就是無法運算了
木皮
學海無涯
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 485 個
工控威望: 742 點
下載積分: 16520 分
在線時間: 243(小時)
注冊時間: 2012-06-17
最后登錄: 2021-06-06
查看木皮的 主題 / 回貼
3樓  發(fā)表于: 2013-03-28 08:21
超出范圍了,你改用32位,并把存儲器地址間隔兩位以上
大家好才是真的好
天空流星
SZ-CL
級別: 網(wǎng)絡英雄
精華主題: 0
發(fā)帖數(shù)量: 571 個
工控威望: 6193 點
下載積分: 20463 分
在線時間: 560(小時)
注冊時間: 2008-03-17
最后登錄: 2024-12-21
查看天空流星的 主題 / 回貼
4樓  發(fā)表于: 2013-03-28 12:32
引用
引用第3樓木皮于2013-03-28 08:21發(fā)表的  :
超出范圍了,你改用32位,并把存儲器地址間隔兩位以上

同意5樓
8192*4的結(jié)果超范圍了,結(jié)果是個32位的把最后一步改成32位的運算
wzhw80808
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 706 個
工控威望: 461 點
下載積分: 492 分
在線時間: 342(小時)
注冊時間: 2007-10-20
最后登錄: 2024-09-30
查看wzhw80808的 主題 / 回貼
5樓  發(fā)表于: 2013-03-28 12:38
超出范圍了,你改用32位,并把存儲器地址間隔兩位以上
gpp0603
靜水無為
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 249 個
工控威望: 330 點
下載積分: 10242 分
在線時間: 217(小時)
注冊時間: 2009-11-12
最后登錄: 2024-12-21
查看gpp0603的 主題 / 回貼
6樓  發(fā)表于: 2013-03-28 22:44
怎樣將MUL D0 D1 D2中的值讀出來
ymr78419972
宿命的輪回注定了要讓我們?nèi)プ分鹉切╇y以企及卻又十分向往的美麗
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 587 個
工控威望: 2719 點
下載積分: 16620 分
在線時間: 270(小時)
注冊時間: 2009-05-10
最后登錄: 2024-11-16
查看ymr78419972的 主題 / 回貼
7樓  發(fā)表于: 2013-03-29 08:55
兩D相MUL,那存結(jié)果一定是32位的,D1,D2全都是16位的啊,所以:
DMOV  K8192  D0 (D1被占用)
DMOV  K4         D2(D3被占用)
DMUL D0    D2    D4 (D5被占用)
DSUB  D4   K1    D10 (D11被占用)
DDIV    D10  K4   D12 (D13被占用)
8192*4 = 32768 D16位的最大值是32767
山河今仍在,壯志在何方?
lplvpeng
專業(yè)制造橡膠射出成型機
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 107 個
工控威望: 226 點
下載積分: 1265 分
在線時間: 59(小時)
注冊時間: 2011-03-26
最后登錄: 2024-12-09
查看lplvpeng的 主題 / 回貼
8樓  發(fā)表于: 2013-03-29 09:59
樓主沒意識到32位指令用D前綴
承接:
設備改造維修15161680303
dongguansae
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 25 個
工控威望: 146 點
下載積分: 2218 分
在線時間: 25(小時)
注冊時間: 2012-12-11
最后登錄: 2020-07-14
查看dongguansae的 主題 / 回貼
9樓  發(fā)表于: 2013-03-29 11:59
這樣改就對了:
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重新編輯 ]
gpp0603
靜水無為
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 249 個
工控威望: 330 點
下載積分: 10242 分
在線時間: 217(小時)
注冊時間: 2009-11-12
最后登錄: 2024-12-21
查看gpp0603的 主題 / 回貼
10樓  發(fā)表于: 2013-03-30 20:17
謝謝大家了
yjhdlp
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 478 個
工控威望: 625 點
下載積分: 2081 分
在線時間: 178(小時)
注冊時間: 2010-11-13
最后登錄: 2022-10-15
查看yjhdlp的 主題 / 回貼
11樓  發(fā)表于: 2013-03-31 15:38
學習了