微控制器的程式具體執行過程以及棧空間的使用

2021-10-20 00:27:43 字數 510 閱讀 3381

初始化ram

:將啟動檔案裡選擇的ram空間清零,將初始化不為零的全域性變數在ram裡賦值。

給pc指標賦初值

:將程式的第一條語句在rom的位址取出給pc指標。

程式執行過程:

程式語句都在rom裡放著,在起始檔案裡面設定了棧頂位址,然後初始化了ram,給pc指標賦初值,讓cpu根據pc指標裡的值從rom裡取出一條指令來執行,在執行的過程中pc指標加上執行的指令對應的位元組數,執行完後再根據pc指標的值去rom裡取語句執行,碰到呼叫跳轉等指令,則將下一條指令的位址放在棧指標+1的ram位置,因為位址是16位所以棧指標+=2(保留下一條語句的位址),將程式跳轉過去的位址賦值給pc指標,cpu根據pc指標繼續將位址對應的rom指令取出執行,在返回時將棧指標-1裡存放的位址給pc指標(也就是在跳轉之前保留的下一條語句的位址),同理棧指標-=2, cpu根據pc指標繼續將位址對應的rom指令取出執行。

ps:將棧指標存放的資料取出後,裡面的資料只會被後面程式使用時所覆蓋而不會主動清零。

微控制器中段程式 微控制器中乙個程式的執行過程

微控制器中乙個程式的執行過程 微控制器中乙個程式的執行過程分為取指令,分析指令和執行指令幾個步 驟。取指令的任務是 根據程式計數器 pc中的值從程式儲存器讀出現行指 令,送到指令暫存器。分析指令階段的任務是 將指令暫存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求運算元,則尋找運算元位址...

微控制器中段程式 微控制器中乙個程式的執行過程詳解

微控制器中乙個程式的執行過程分為取指令,分析指令和執行指令幾個步驟。取指令的任務是 根據程式計數器pc中的值從程式儲存器讀出現行指令,送到指令暫存器。分析指令階段的任務是 將指令暫存器中的指令操作碼取出後進行解碼,分析其指令性質。如指令要求運算元,則尋找運算元位址。計算機執行程式的過程實際上就是逐條...

微控制器中段程式 微控制器程式的存放

1 對於燒錄在微控制器裡面的程式,程式的 段,data段,bss段,rodata段等都存放在微控制器的flash中。當微控制器上電後,初始化彙編 將data段,bss段,複製到微控制器的ram中,並建立好堆疊,開始呼叫程式的main函式。以後,便有了程式儲存器和資料儲存器之分,程式執行時從flash...