提高代码执行效率的几个小技巧
源码 2019-01-22
377
前言
目录
一、方法参数限制
二、反汇编 switch case & if else
三、C 中写汇编代码
四、 __builtin_expect 、分支执行概率
五、递归和迭代的选择
六、空间换时间
七、栈区和堆区
八、其他
一、方法参数限制
ARM64 有34个寄存器,包括 31 个通用寄存器( x0-x30)、SP、PC、CPSR。
x0 - x30 是31个通用整型寄存器。每个寄存器可以存取一个 64 位大小的数。 当使用 r0 - r30 访问时,它就是一个 64 位的数。当使用 w0 - w30 访问时,访问的是这些寄存器的低 32 位。
寄存器 | 位数 | 描述 |
---|---|---|
x0-x30 | 64bit | 通用寄存器,如果有需要可以当做32bit使用:WO-W30 |
FP(x29) | 64bit | 保存栈帧地址(栈底指针) |
LR(x30) | 64bit | 通常称X30为程序链接寄存器,保存子程序结束后需要执行的下一条指令 |
SP | 64bit | 保存栈指针,使用 SP/WSP来进行对SP寄存器的访问 |
PC | 64bit | 程序计数器,俗称PC指针,总是指向即将要执行的下一条指令,在arm64中,软件是不能改写PC寄存器的 |
CPSR | 64bit | 状态寄存器 |
本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/tigaodaimazhixingxiaoshuaidejigexiaojiqiao.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:1 月 22, 2019 at 04:32 下午