arm編譯器調用約定

經反彙編經驗證確實如此:局部變量用用{r4-r12,r14}來保存,放不下的在堆棧保存,{r0-r3}用來傳遞參數,多於4個參數也保存在堆棧,完全符合編譯器手冊規則。有圖有真相



調用函數時堆棧操作


圖上事例也說明具體哪個局部變量保存到堆棧也是編譯器隨機確定的而不是像參數傳遞一樣有固定的順序,如同之前碰到一個問題,編譯器對靜態數組的的初始化不會從從左到右,而是隨機初始化(用戶程序控制初始化除外)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章