1)對於燒錄在微控制器裡面的程式,程式的**段,data段,bss段,rodata段等都存放在微控制器的flash中。當微控制器上電後,初始化彙編**將data段,bss段,複製到微控制器的ram中,並建立好堆疊,開始呼叫程式的main函式。以後,便有了程式儲存器和資料儲存器之分,程式執行時從flash(即指令儲存器,**儲存器)中讀取指令,從ram中讀取與寫入資料。
2)ram->存放data段,bss段,堆疊段;
rom->存放**段(code 段)與唯讀資料段(rodata段);
3)bss段的理解:(block started by symbol)通常是指用來存放程式未初始化的全域性變數和靜態變數的一塊記憶體區域,特點是可讀寫的;在程式執行之前bss段會自動清零,所以未初始化的全域性變數與靜態變數在程式執行之前就已經初始化為0了。
注:bss段與data段的區別:bss段存放的是未初始化的全域性變數與靜態變數;data段存放的是初始化後的全域性變數與靜態變數;
4)rodata段的理解:rodata段存放的是程式唯讀資料,一般是程式裡面的唯讀變數(如const修飾的變數)與字串常量。單獨設立".rodata"段有很多好處,不光是在語義上支援const字,作業系統載入時可以將".rodata"段的屬性設定為唯讀,保證了程式的安全。
微控制器中段程式 51微控制器中斷程式大全
例項 用定時器 t0查詢方式p2口 位控制led 閃爍 include 包含微控制器暫存器定義的標頭檔案 void main void ea 1 開總中斷 et0 1 定時器t0 中斷允許 tmod 0x01 使用定時器 t0的模式 th0 65536 46083 256 定時器t0 的高位賦初值 ...
微控制器中段程式 微控制器中乙個程式的執行過程
微控制器中乙個程式的執行過程 微控制器中乙個程式的執行過程分為取指令,分析指令和執行指令幾個步 驟。取指令的任務是 根據程式計數器 pc中的值從程式儲存器讀出現行指 令,送到指令暫存器。分析指令階段的任務是 將指令暫存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求運算元,則尋找運算元位址...
微控制器中段程式 微控制器中乙個程式的執行過程詳解
微控制器中乙個程式的執行過程分為取指令,分析指令和執行指令幾個步驟。取指令的任務是 根據程式計數器pc中的值從程式儲存器讀出現行指令,送到指令暫存器。分析指令階段的任務是 將指令暫存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求運算元,則尋找運算元位址。計算機執行程式的過程實際上就是逐條...