arm汇编
文章平均质量分 68
sunty2016
这个作者很懒,什么都没留下…
展开
-
ARM汇编笔记(2)——函数调用规则
(本文所介绍的各个约定与32位arm Linux系统C语言toolchain一致)1. 栈 栈保存着函数调用中的参数,寄存器上下文,局部变量。ARM中函数返回地址是寄存器上下文的一部分(lr),无需单列。 栈由高地址向低地址增长,也就是说push会导致栈顶指针指向较低的地址,而pop则相反。 同时约定了栈顶指针指向的是入栈的最后一个值的位置,而非下一个入栈位置。2. 控制转移和寄存器...原创 2017-10-17 16:14:43 · 6021 阅读 · 1 评论 -
ARM汇编笔记(3)——NEON intrinsics 函数
本文打算介绍下ARM的SIMD指令在C语言下intrinsics函数的使用方法,算是对于NEON的一个入门吧。严格来说本文并不是关于ARM汇编的,但是多多少少有关系。SIMD什么是SIMD呢?就是一条指令处理多个数据,可以算作是一种并行计算。比如我们要做一个4维向量的加法,用一般的指令完成必须使用4次加法指令才行,而用SIMD指令可能只需要一次加法,而且花费的时间和一般指令做一次加法的时间相同。很...原创 2018-04-09 18:42:07 · 12218 阅读 · 3 评论 -
ARM汇编笔记(1)——寄存器、常用指令
1. 通用寄存器r0 ~ r15有特殊用途的寄存器: r14:别名lr,保存函数返回地址 r15:别名pc, 程序计数器,值为当前指令地址+4(顺序执行的下一条指令)与编译器有特殊约定的寄存器: r13:别名sp,栈顶指针 (r9~r13都有约定,但还是sp最常用到)其他与函数调用约定相关的寄存器: r0~r3:函数调用传入参数的前4个32位数据 r0:函数返回值P...原创 2017-10-16 16:26:47 · 1427 阅读 · 0 评论