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#
后续继续更新