https://developer.arm.com/products/architecture/a-profile/docs/den0018/a
arm neon介紹:
https://developer.arm.com/technologies/neon
http://www.javashuo.com/article/p-zqfgqdes-eh.htmlhtml
ARM程序調用規則(ATPCS)分析:
https://blog.csdn.net/rockrockwu/article/details/8043618編程
ARM(RISC)和x86(CISC)的技術差別:
https://www.cnblogs.com/bitter/p/4023176.html學習
GNU ARM 彙編指令:
http://www.360doc.com/content/14/0929/14/5268588_413228352.shtml#spa
ARM之彙編學習—如何編寫ARM彙編程序:
https://blog.csdn.net/tigerjibo/article/details/6201716.net
當前主要講述32位arm處理器寄存器:
arm32位寄存器:15個通用寄存器R0~R14,R15是程序計數器PC。htm
NEON寄存器:blog
注:NEON的這三種寄存器是重疊的,物理地址是同樣的。
ATPCS規定寄存器的使用規則以下:
1). 子程序經過R0~R3來傳遞參數;ip
2). 子程序使用R4~R11來保存局部變量;get
3). 寄存器R12用做scratch寄存器,記爲ip(發現Linux內核中的彙編直接使用ip這個it
符號);
4). R13爲SP
5). R14爲LR
6). R15爲PC
1). 參數個數超過4個時,使用R0~R3傳遞參數;超過4個時,其餘參數使用數據棧傳遞,最後一個字先入棧。
2). 子程序返回結果,32位結果存入R0中,如果64位結果,低位存入R0中,高位存入R1中。
參考:
http://www.360doc.com/content/14/0929/14/5268588_413228352.shtml#
後續繼續更新