冠軍歐洲
級別: 略有小成
![]() |
傳送的時候要用DMOV,定位指令也用雙字DDRVA 樓主留言:按照您的方法試了下果然正常,再次感謝您! |
---|---|
本帖最近評分記錄: |
eq8zw5xb
級別: 略有小成
![]() |
如果你把這個補(bǔ)碼 當(dāng)作 無符號整數(shù)(unsigned short) 來看,它的值就是: 這就解釋了為什么你傳送的是 -3000,但接收到的是 62536 ——因為在接收端,它被當(dāng)作了 無符號整數(shù) 來解釋。 樓主留言:感謝您的耐心指導(dǎo)! |
---|---|
本帖最近評分記錄: |
1105250205
級別: 家園常客
![]() |
mov是單字,但d=是雙字。符號位不對,自然顯示的數(shù)據(jù)也就不對 樓主留言:感謝您的耐心指導(dǎo) |
---|---|
本帖最近評分記錄: |
dalao123
級別: 論壇先鋒
![]() |
用dmov 就不會出問題,不要用mov,,因為你沒有理解mov數(shù)據(jù)地址的范圍。 ![]() ![]() ![]() ![]() 樓主留言:謝謝的指導(dǎo),我馬上把MOV的數(shù)據(jù)地址范圍再仔細(xì)學(xué)習(xí)下 |
|
---|---|---|
本帖最近評分記錄:
|
wzy4828
風(fēng)流雖能驚天下,唯有悶騷動世人
級別: 家園常客
![]() |
這是PLC寄存器的一種機(jī)制,16位寄存器運算結(jié)果為負(fù)數(shù)時,寄存器監(jiān)視看到的是補(bǔ)碼后的二進(jìn)制(-3000補(bǔ)碼后的二進(jìn)制轉(zhuǎn)換成十進(jìn)制就是62536)。運算過程為:把3000的二進(jìn)制000101110111000取反→1111010001000111再+1→1111010001001000→轉(zhuǎn)換成十進(jìn)制→62536 樓主留言:感謝您給出如此詳細(xì)的指導(dǎo),向您致以崇高的敬意!再次感謝您 |
---|---|
本帖最近評分記錄: |
wzy4828
風(fēng)流雖能驚天下,唯有悶騷動世人
級別: 家園常客
![]() |
必須要理解和掌握這種機(jī)制,PLC在和8進(jìn)制(準(zhǔn)確的說應(yīng)該是8位機(jī))儀器通訊的時候,要進(jìn)行頻繁的轉(zhuǎn)換。 樓主留言:感謝您,PLC也是8進(jìn)制和8進(jìn)制儀器設(shè)備通訊的時候頻繁的轉(zhuǎn)換這個原理我還明白 [ 此帖被wzy4828在2025-08-16 22:53重新編輯 ] |
---|---|
本帖最近評分記錄: |
85022122
級別: 正式會員
![]() |
昨天下午我搞了好久都沒想明白的問題,再這里諸位大佬耐心細(xì)心的接到幫助我解決了問題!再次感諸位大佬!我想說有你們真好!以后我也會盡量的幫助他人,傳遞愛心 |
---|---|
|