data ---> 可定址片內ram
data:固定指前面0x00-0x7f的128個ram,可以用acc直接讀寫的,速度最快,生成的**也最小。
bdata ---> 可位定址的片內ram
idata ---> 可定址片內ram,允許訪問全部內部ram ( mox acc,@rx.)
idata:固定指前面0x00-0xff的256個ram,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似c中的指標方式 訪問的。
pdata ---> 分頁定址片外ram (movx @r0) (256 byte/頁)
pdata:外部擴充套件ram的低256個位元組,位址出現在a0-a7的上時讀寫,用movx acc,@rx讀寫。這個比較特殊,而且c51好象有對此bug, 建議少用。但也有他的優點,具體用法屬於中級問題,這裡不提。
xdata ---> 可定址片外ram (64k 位址範圍)
xdata:外部擴充套件ram,一般指外部0x0000-0xffff空間,用dptr訪問。
code ---> 程式儲存區 (64k 位址範圍),對應movc @dptr
記憶體儲存 全域性 靜態儲存區 常量儲存區
全域性 靜態儲存區 全域性變數和靜態變數被分配到同一塊記憶體中 常量儲存區 存放的是常量,是不允許修改的。靜態儲存是main函式執行前分配記憶體並初始化 常量儲存是固化在執行檔案上的資料。棧的方向和平台有關,一般來說,windows由高位址向低位址增長,linux相反,但基於linux的第三方系統得...
堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區
在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區 1.棧由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。棧空間初始化的時候,空間大小就確定了,棧指標指向棧頂 高位址 壓入棧時 棧指標減減,想低位址移動。棧...
堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區
堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區 在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區。棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。堆,就是那些由new分配的記憶體塊,他們的...