欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2931|回復: 17
打印 上一主題 下一主題
收起左側

51單片機寄存器片外間接尋址的問題(匯編語言)

[復制鏈接]
跳轉到指定樓層
樓主
在第7行之前,R0的值已經等于20H,A的值已經等于DDH。
第7行 MOVX @R0,A 表示將A的值賦給R0的值所指向的片外RAM的存儲單元
但為什么第7行代碼在執行完以后,片外RAM的20H的值并沒有發生變化呢?

51hei截圖_20221109133740.png (70.9 KB, 下載次數: 62)

51hei截圖_20221109133740.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:883242 發表于 2022-11-15 17:09 | 只看該作者
你看下X:FF20位置,應該已經改變了。
回復

使用道具 舉報

板凳
ID:624769 發表于 2022-11-15 19:09 | 只看該作者
再往下走一步。
回復

使用道具 舉報

地板
ID:1003481 發表于 2022-11-16 08:43 | 只看該作者
Hephaestus 發表于 2022-11-15 17:09
你看下X:FF20位置,應該已經改變了。

X:FF20H查不了,是一片空白。不知道是為什么,我用的Keil 4仿真的
回復

使用道具 舉報

5#
ID:1003481 發表于 2022-11-16 08:44 | 只看該作者

往下繼續走,X:0020H還是沒變
回復

使用道具 舉報

6#
ID:384109 發表于 2022-11-16 09:03 | 只看該作者
是否有實物外部存儲器,軟件仿真的話不一定能有結果
回復

使用道具 舉報

7#
ID:1003481 發表于 2022-11-16 10:07 | 只看該作者
如圖,用DPTR指向片外內存就可以正確讀寫,但R0、R1不行
回復

使用道具 舉報

8#
ID:1003481 發表于 2022-11-16 10:07 | 只看該作者
人中狼 發表于 2022-11-16 09:03
是否有實物外部存儲器,軟件仿真的話不一定能有結果

用DPTR可以完成操作,但是R0、R1不行。不知道為啥會這樣子
回復

使用道具 舉報

9#
ID:1003481 發表于 2022-11-16 10:31 來自觸屏版 | 只看該作者
如果代碼沒問題的話我就不去深究了,因為我只是理論學習
回復

使用道具 舉報

10#
ID:624769 發表于 2022-11-16 11:34 | 只看該作者
MagicKrse 發表于 2022-11-16 10:31
如果代碼沒問題的話我就不去深究了,因為我只是理論學習

不深究就學不會啊……
你 頁定義了么?
只要定義了頁,就能正常寫入啊。如圖:




回復

使用道具 舉報

11#
ID:883242 發表于 2022-11-16 13:23 | 只看該作者
這個頁地址是標準51沒有的,查你用的單片機具體型號的手冊吧。
回復

使用道具 舉報

12#
ID:123289 發表于 2022-11-16 13:45 | 只看該作者
外XRAM地址是16位,含蓋0000H-FFFFH。
DPTR是16位,所以用DPTR尋址,你一定能理解。
但R0是8位,你為何沒有提出疑問呢?
還是沒有認真讀CPU手冊,51系統規定,用@R0對XRAM尋址時,高8位隱含在P2中。
去核對一下:P2R0合成的地址看看,是不是也。
或者先將P2清0,再做一次。

勸君認真讀一下手冊,它是你精通單片機成為高手的必由之路!
回復

使用道具 舉報

13#
ID:1003481 發表于 2022-11-16 14:25 | 只看該作者
答案正如樓上各位所說。
我錯誤的將R0、R1的尋址和DPTR的內容聯系起來了。
我原以為DPTR的高8位(DPH)只要是00H就不會影響工作寄存器片外尋址的地址指向,
我錯誤的認為:工作寄存器片外尋址時其指向的地址=DPH+R0.
而實際上:P2的值才是地址總線的高8位,工作寄存器片外尋址時其指向的地址=P2+R0,而工作寄存器片外尋址時是不受DPH的影響的。
感謝上面的朋友們的解答!
回復

使用道具 舉報

14#
ID:77589 發表于 2022-11-16 17:52 | 只看該作者
yzwzfyz 發表于 2022-11-16 13:45
外XRAM地址是16位,含蓋0000H-FFFFH。
DPTR是16位,所以用DPTR尋址,你一定能理解。
但R0是8位,你為何沒 ...

這才是正解!!!!!!
回復

使用道具 舉報

15#
ID:983641 發表于 2022-11-25 17:02 | 只看該作者
P2是什么?
回復

使用道具 舉報

16#
ID:368534 發表于 2022-11-29 11:29 | 只看該作者
查idata,不是xdata。
回復

使用道具 舉報

17#
ID:883242 發表于 2022-11-29 21:26 | 只看該作者
xdqfc 發表于 2022-11-29 11:29
查idata,不是xdata。

樓主已經解決問題了,你還在說這些錯誤的結論用意何在?

xdata用movx指令訪問
idata用mov @Ri (i=0 or 1)指令訪問

你仔細看看樓主的代碼!
回復

使用道具 舉報

18#
ID:368534 發表于 2022-11-30 11:13 | 只看該作者
Hephaestus 發表于 2022-11-29 21:26
樓主已經解決問題了,你還在說這些錯誤的結論用意何在?

xdata用movx指令訪問

我能有什么用意??沒有仔細看到他的代碼而已。你急什么啊?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表