syking1234
級別: 略有小成
|
請教這個D7274為什么無法傳送數據? 而同樣的MIAN1里的D10014卻可以 說明D8000、D8006、D5548均為十進制3位整數 這個數據運算我有點糊涂,也看過資料 D*好像保存結果的是4個16位軟元件地址,DMOV只能傳送32位,64位的高位地址怎么辦??? 我是用模擬器反復試驗,允許沒問題,RUN檔 求解!!!!急1!!!! 老大,也進來幫我下,謝謝!!! 數學沒學好啊,丟人啊 數據計算2.rar (12 K) 下载次数:28 [ 此帖被syking1234在2013-01-04 20:38重新編輯 ] |
---|---|
|
aojianyun121
級別: 家園常客
|
圖片:
好像是哪個D7274寄存器有問題,是不是是特別寄存器呢,我模擬也一樣,不過改成D7260是可以的。我沒接觸過Q系列的,所以幫不了哈!不好意思,希望對你有幫助。 |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
紅框中標出的32位乘法指令,其結果存儲地址占用64位,故[D7275 D7274]都在該指令影響下將MOV得到的值覆蓋掉。 |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
因為程序中D5844在D5842后面使用到,這樣使用的效果就是D5550*K1000的結果,將D5548*K-10000的結果覆蓋掉了,卻成了你需要的結果,所以看起來是正常的。 你可以將D5550~D10012這兩段程序寫到D5548這一段程序上面。 就會發現雖然D10012的值雖然還是你要的正確的值,但D5844的值卻是0(如果不是說明D5548的值太大,乘法運算之后超出32位儲存范圍,D5844內有儲存的數據了)。 |
---|---|
|
syking1234
級別: 略有小成
|
還是沒辦法啊 我把D* 后面的K100000 改成* 后面K10000,好像不存在4個字的問題 |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
掉換過后,D5844顯示的數跟D5548 K-10000的數值有關。 但你放心,雖然顯示的數據你看著有問題,但實際運算結果是不會錯的。 |
---|---|
|