赞
踩
1 32个向量寄存器 v0~v31
2 d0-d31 64位double寄存器
3 s0-s31 32位float寄存器
4 fpsr 浮点状态寄存器
5 fpcr 浮点控制寄存器
6 x0~x28 32位地址寄存器
7 sp栈顶寄存器
8 fp (x29) 栈底寄存器
9 pc 存储吓一跳指令的,类似 cs ip寄存器
10 lr 通常称为x30程序链接寄存器,保存跳转返回信息地址
11 cpsr状态寄存器
一堆状态mask Z标志, N标志等等。
3 汇编指令
1 bl 指令 将下一条指令的地址放入lr寄存器(x30),转到标号处执行指令
2 ret默认使用lr(x30)寄存器的值,通过底层指令提示CPU此处作为下一条指令地址
3 str从寄存器往内存读数据
4 ldr 从内存往寄存器写数据
5 ldp/stp 是ldr/str的衍生,可以同时督学两个寄存器,ldr和str只能读写一个
6 sdrp 取字符串常量
7 b.ne 带条件的跳转
8 adrp 地址分页
9 b.le 如果小雨等于跳转当前地址
10 b.hi 无符号大于等于
11 cmp比较
12 br x9根据寄存器里的值进行跳转
13 相关语法
arm64传参数
1 arm64中,参数存放在x0~x7八个寄存器中
2 如果是浮点就会用服点寄存器
3 如果超过8个就会用栈传参数
4 函数返回值,默认情况下x0寄存器,中。如果放不下,就会利用上一个调用栈内部,x8寄存器作为参照,
arm上内存分区
1 代码区,存放代码,可读,可执行
2 栈区,参数,局部变量,临时数据
3 堆区,动态申请,可读,可写
4 全局变量,可读,可写
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。