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