線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1845
推到 Plurk!
推到 Facebook!

記憶體有點難懂...

答題得分者是:handystudio
CWCHU
一般會員


發表:7
回覆:6
積分:2
註冊:2005-05-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-30 22:39:36 IP:218.168.xxx.xxx 未訂閱
最近看8051的書,有關記憶體部分的。讓我想不通,當你寫程式你怎麼知道你寫的是佔內部還是外部的程式記憶體,越看到後面就越來越亂。 要怎麼去分,才會再寫程式的時候,清楚的知道你寫的程式佔哪部分? 記憶體大約用了多少??
mymj
版主


發表:132
回覆:486
積分:608
註冊:2002-10-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-30 23:26:17 IP:203.67.xxx.xxx 未訂閱
8051單晶片有內部RAM 位址00~7FH共有128個記憶空間,這些RAM是可以讀寫的 另外有一塊記憶體叫特殊功能暫存器(SFR)共有128個空間位址80H~FFH 8052內部RAM 增加了80H~FFH128個記憶空間,它和SFR使用同樣記憶位址,但在內部它分屬不同一塊記憶體 要存取記憶位址的內容 8052內部RAM 增加了80H~FFH128個記憶空間,要用間接定址法 例如 要將62放到8052的88H位址
 
      MOV  A,#62H
      MOV  R0,#88H
      MOV  @R0,A
如果要存取SFR記憶位址的內容 例如要取出P0(80H)的內容到A
       MOV  A,P0
;也可以這樣
       MOV  A,80H;並不鼓勵使用這種方式     
如果還是不懂將8051前面有關記憶體描述部分再詳讀
handystudio
高階會員


發表:1
回覆:81
積分:106
註冊:2005-03-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-30 23:32:08 IP:220.138.xxx.xxx 未訂閱
引言: 最近看8051的書,有關記憶體部分的。讓我想不通,當你寫程式你怎麼知道你寫的是佔內部還是外部的程式記憶體,越看到後面就越來越亂。 要怎麼去分,才會再寫程式的時候,清楚的知道你寫的程式佔哪部分? 記憶體大約用了多少??
我想你指的是用C吧,因為組語是很容易知道的. 8051 C語言的memory usage跟用那一家的compiler有點關係,如 KEIL C51, IAR C51, Tasking C51, Franklin C51....,在不指定變數的data型態下,會依你選擇的8051不同,由compiler自行調配最佳的data型態給變數,當然你也可自行宣告,如 xdata unsigned char para; para 就會被指定到外部memory, data unsigned cahr para; 就放到內部 memory, 不過你最好習慣看 compile 後產生的 map 檔,因為此檔會告訴你所有 memory 的配置狀況,包括變數的所在位置和長度. 歡迎參觀輕巧工作室 http://handy.myweb.hinet.net
------
歡迎光臨 輕巧工作室
網站 http://www.handystudio.tw
控制電路板客製設計、製作交貨
8051專題製作/專題客製
系統時間:2024-05-15 23:14:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!