ARM彙編學習(1)

       1.  r0-r3 用作傳入函數參數,傳出函數返回值。在子程序調用之間,可以將 r0-r3 用於任何用途。被調用函數在返回之前不必恢復 r0-r3。---如果調用函數需要再次使用 r0-r3 的內容,則它必須保留這些內容。

       2. r4-r11 被用來存放函數的局部變量。如果被調用函數使用了這些寄存器,它在返回之前必須恢復這些寄存器的值。
       3. r12 是內部調用暫時寄存器 ip。它在過程鏈接膠合代碼(例如,交互操作膠合代碼)中用於此角色。在過程調用之間,可以將它用於任何用途。被調用函數在返回之前不必恢復 r12。
       4. 寄存器 r13 是棧指針 sp。它不能用於任何其它用途。sp 中存放的值在退出被調用函數時必須與進入時的值相同。
       5. 寄存器 r14 是鏈接寄存器 lr。如果您保存了返回地址,則可以在調用之間將 r14 用於其它用途,程序返回時要恢復
       6. 寄存器 r15 是程序計數器 PC。它不能用於任何其它用途。
       7. 在中斷程序中,所有的寄存器都必須保護,編譯器會自動保護R4~R11,所以一般你自己只要在程序的開頭,
保護R0~R3,R12,LR就可以了,除非你用匯編人爲的去改變R4~R11的值。
       sub lr,lr,#4
       stmfd sp!,{r0-r3,r12,lr};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章