Android异常分析基础之 --- APCS(ARM程序调用标准) --- (二) --- APCS标准

   
   
   

接着上一篇继续来说明APCS的调用规范。

上一篇介绍了ARM的AArch64的架构,当然,架构的介绍我没有说的很详细,一来,太占用篇幅,感兴趣的同学可以自行去ARM的网站下载文档进行阅读。二来,因为要介绍APCS,需要对架构有一个基本的了解,所以,我们对架构的介绍,只相当于做一个概念性的普及。现在,我们来回归到正题,即:APCS标准本身。

数据类型

首先,我们介绍一下数据类型。在AArch64 APCS标准中,数据类型是一个很重要的分类,根据数据类型,我们可以确认我们代码中所使用的寄存器是哪些,以及这些寄存器是怎么使用的。

比如,在日常代码中,我们对变量的定义一般来说会有如下几个类型,分别是:

1: char型, 1个字节

2: short型, 2个字节

3: int型,     4个字节

4: float型      4个字节

5: double型  8个字节

6: 指针型     8个字节(AArch64架构上)  4个字节 (AArch32架构上)

但是,在AArch64 APCS的层面,由于还存在SIMD这种单指令多数据的指令操作方式,所以,它对数据类型的分类,又做了更细化的标准,依据的是数据类型的字节长度,这就是机器类型

类型 机器类型 字节长度 自然对齐字节数 备注
整型
Unsigned byte
       1               1 对应 unsignd char
Signed byte
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值