1. 程式人生 > >Keil C51對C語言的關鍵詞擴充套件之十: pdata

Keil C51對C語言的關鍵詞擴充套件之十: pdata

外部ram通過一個地址指標暫存器來間接訪問,讀寫效率要低於內部ram。

外部ram容量最大可位64KB。

Keil C51提供兩種外部資料儲存方式,pdata和xdata。

1)xdata儲存型別,指示變數可儲存在外部ram 64KB地址範圍內任意位置。large記憶體模型下,變數即為此種預設儲存型別。

2)pdata儲存型別,指示變數可儲存在外部ram 256位元組頁範圍內任意位置。compact記憶體模型下,變數即為此種儲存型別。

外部ram通過movx指令存取。

相關推薦

Keil C51C語言關鍵詞擴充套件 pdata

外部ram通過一個地址指標暫存器來間接訪問,讀寫效率要低於內部ram。 外部ram容量最大可位64KB。 Keil C51提供兩種外部資料儲存方式,pdata和xdata。 1)xdata儲存型別,指示變數可儲存在外部ram 64KB地址範圍內任意位置。large記憶體模型

Keil C51C語言關鍵詞擴充套件 far

far的出現,是Keil 編譯器為了支援新出現的8051家族增強型MCU,這些增強型MCU可能擁有大於64KB的儲存器。使用far可訪問擴充套件的RAM,使用const far可訪問擴充套件的ROM。 NXP 51MX架構51微控制器提供通過通用指標訪問多達8MB的code

Keil C51C語言關鍵詞擴充套件十三: sfr

sfr用來定義特殊功能暫存器。用法如下: sfr name = address; name 為暫存器名字 address 為暫存器的地址 示例: sfr P0 = 0x80; /* P0口,地址為0x80 */ sfr P1 = 0x90;/* P1口,地址為0x90

Keil C51C語言關鍵詞擴充套件 alien

alien關鍵詞主要是為了C51編譯器與PL/M-51編譯器相容。 在C51編譯器中呼叫PL/M-51函式,須使用alien宣告該函式,如下: extern alien char plm_func (int, char); char c_func (void) {

Keil C51C語言關鍵詞擴充套件 code

code 指定儲存位置位於程式儲存器。程式儲存器只讀,因此code型別的變數,是無法再次賦值的。 unsigned char code ary[ ] = :"Read only"; /* 陣列ary位於程式儲存器 */ ary[0]='a'; /* 錯誤,不可修改*/

Keil C51C語言關鍵詞擴充套件一: xdata

xdata宣告的變數位於外部ram 64KB地址範圍內某一位置。 程式示例: unsigned int xdata m=0; /* 宣告一個全域性變數,可位於外部ram 64KB地址範圍內任意位置,由

Keil C51C語言關鍵詞擴充套件 compact

函式的引數和區域性變數儲存在記憶體模型指定的預設區域內。 我們可以通過small,compact 或large 指定一個函式使用何種記憶體模型。 #pragma small /* 預設記憶體模型為small*/ extern int calc (char

C++語言筆記系列八——虛函數(1)

自己 語言 數據類型 說明 出現 adium 重定義 angle rac 1.C++中的多態 (1)多態性:同一個函數的調用能夠進行不同的操作,函數重載是實現多態的一種手段。 (2)聯編:在編譯階段進行聯接。即是在編譯階段將一個函數的調用點和函數

C++11新特性enable_shared_from_this

 enable_shared_from_this是一個模板類,定義於標頭檔案<memory>,其原型為: template< class T > class enable_shared_from_this;        std::enable_s

C51標準C語言擴充套件 -- 資料型別

--------------------------------------------- -- 時間:2018-11-22 -- 建立人:Ruo_Xiao -- 郵箱:[email protected] ----------------------------------------

c51和一般c語言的不同

   c語言和c51大部分的地方都是相同的,他們的語句,結構,順序都是很相似的,只是c51相比與c語言,多了很多變數型別和其他的東西,下面是總結c語言和c51的一些不同之處。   變數型別   位變數

C語言數組冒泡排序+折半查找法(二分查找)

不存在 次數 存在 是否 .com int count 結束 如果 冒泡排序算法 1 int num[5]; 2 int i; 3 //循環接收用戶輸入的元素 4 for(i=0;i<5;i++){ 5 pr

C語言的陷阱typedef

c語言的陷阱之typedeftypedef是一個關鍵字,可以重命名一些數據類型也可以重定義一些新的數據類型。我們從以下幾個角度去理解typedef。1.typedef和普通數據類型類型typedef int MYINT;int a = 10; MYINT B = 20;123123我們給int重命名成MYIN

C++語言筆記系列——模版

輸出 類模板 pos 有一個 class 初始 個數 創建對象 example 1.隨意輸入兩個數x和y,輸出最大值max。 int max(int x, int y) {return x>y?x:y;} 2.函數模版 (1)用一種或者多

C語言知識結構

等等 深入 代碼 技術 研究 pop tex dsm 其他 C語言的知識結構整理成思維導圖,例如以下圖所看到的: 這張圖的總體思路是: 用C敲代碼。該學會什麽? 要用C寫的更好,改學會什麽? 事實上。僅僅要是分層的知識結構,大致的思路是:

C語言編程--scanf()函數與getchar()函數搭配來理解C程序的輸入緩存(buffer)

使用 ges border urn alt color 數值 amp tps 博主最近在學習C語言編程,在書中的代碼示例中出現了下面的代碼段: #include<stdio.h> int main() { char a[5]; int i; printf("

在STM32上實現NTFS4GPT分區表的C語言實現(1)主GPT表頭的實現

center mbr分區 sum 對齊 字節數 決定 容器 alt 水平 題外話:在荒廢了很久沒有更新之後……某日突然收到讀者的站內信!內容大體是詢問GPT分區表信息的讀取方式,筆者激動萬分之下,決定繼續解剖NTFS……其實GPT嚴格上不算是NTFS的內容, GPT和M

梓益C語言學習筆記常用鏈表操作函數

C語言 鏈表操作 梓益C語言學習筆記之常用鏈表操作函數一、創建鏈表void link_creat_head(STU **p_head,STU *p_new){ STU *p_mov=*p_head; if(*p_head==NULL) //當第一次加入鏈表為空時,head執行p_new { *

梓益C語言學習筆記鏈表&動態內存&文件

C語言 鏈表 梓益C語言學習筆記之鏈表&動態內存&文件一、定義: 鏈表是一種物理存儲上非連續,通過指針鏈接次序,實現的一種線性存儲結構。二、特點: 鏈表由一系列節點(鏈表中每一個元素稱為節點)組成,節點在運行時動態生成(malloc),每個節點包括兩個部分: 存儲數據元素的數據域 存儲下一個節點地址的

梓益C語言學習筆記常用字符串操作(sscanf & strtok)

C語言 字符串操作 梓益C語言學習筆記之常用字符串操作(sscanf & strtok)一、sscanf int sscanf(const char *buf,const char *format, …); \\從buf指定的內存區域中讀入信息 例: int a, b, c; ssc