也就是說,如果我們假設:
MCU中有1K擴展RAM,2K RAM連接外部IO口,所以實際上不會用到外部2K的前1K,因為訪問前1K的語句是在內部擴展RAM中執行的。(當然前提是初始化部分是根據實際資源設置的,而不是強行將內部擴展RAM設置為0,設置部分參考keil中的啟動文件)。在這種情況下,單片機擴展RAM資源* * *是2K而不是3K。
這樣就不難理解書上說訪問內部RAM和外部RAM用的是同壹種方法了。
我不想說可以訪問外部RAM的IO口,只看接口定義。
在匯編語言中使用MOVX來表示對擴展RAM的訪問,和在C語言中定義時使用xdata關鍵字是壹回事。
51的外部訪問地址空間是連續的,也就是說,即使IO口連接了其他設備,這個設備也可以作為外部地址空間的壹部分,通過訪問特定的地址來獲取數據。