(特殊暫存器(cpsr和spsr))
除了push,pop還有stmfd,ldmfd。stm 和 ldm 就是多儲存和多載入,arm 使用的 fd 型別
的堆疊,fd 是 full descending 的縮寫,即滿遞減的意思,因為fd堆疊是向下增長的。
stmfd sp!
, @r0~r3,r12 入棧
stmfd sp!
, @lr 入棧
ldmfd sp!
, @先恢復 lr
ldmfd sp!
, @再恢復 r0~r3, r12
暫存器列表中編號低的對應低位址。
_start:
ldr sp,
=0x80200000 @設定棧指標
b main @跳轉到 main 函式
上述即在彙編中初始化 c 執行環境,然後跳轉到 c 檔案的 main 函式中執行。有些處理器還需要做其他的初始化,比如初始化 ddr 等等。因為跳轉到 c 檔案以後再也不會回到彙編了,所以在第 4 行使用了 b 指令來完成跳轉。 嵌入式ARM中常用的彙編指令講解
在介紹之前,先把arm中常見的暫存器及其別名截圖,如下 其中的r1,r2,r3常用作傳遞引數,r4至r11儲存區域性變數,r13常用作資料棧指標,別名sp r14暫存器稱作連線暫存器,別名lr,常用儲存子程式返回位址 暫存器r15是程式計數器,別名pc 1 相對跳轉指令 b bl 這倆條指令可跳轉範...
嵌入式學習筆記 彙編常用符號與偽指令
彙編指令中的注釋符號 表示後面附帶的是立即數 以冒號結尾的指令是標號,標記指令的被分配的位址,類似與c中定義的變數,通過變數代替位址 表示當前指令位址 例如,彙編中死迴圈的實現 b 偽指令前面通常都帶乙個點,以顯示出於指令的不同 globe start給start外部鏈結屬性 section tex...
嵌入式linux常用shell指令
1,mkdir 作用 建立資料夾 用法 mkdir foldername建立資料夾foldername 2,rm 作用 刪除檔案或資料夾 用法 rm filename刪除檔案 rm r foldername刪除資料夾 3,mv 作用 重新命名或搬移 用法 mv filename newfilenam...