Armv8 - 32 核心编程入门
1. Armv8 - 32 架构基础
Armv8 - A 架构支持两种不同的执行状态:AArch32 和 AArch64。AArch32 执行状态采用 32 位宽的寄存器和 32 位的内存地址,而 AArch64 则使用 64 位宽的寄存器和内存地址。为这两种执行状态编写的汇编语言函数分别使用 A32 和 A64 指令集,且这两种指令集的源代码并不兼容。
1.1 数据类型
- 数值数据类型 :数值数据类型是基本的标量值,如整数或浮点数。AArch32 执行状态支持的数值数据类型与 C++ 类型有对应关系,具体如下表所示:
| 类型 | 大小(位) | C++ 类型 | |
| ---- | ---- | ---- | ---- |
| 有符号整数 | 8 | char | int8_t |
| 有符号整数 | 16 | short | int16_t |
| 有符号整数 | 32 | int, long | int32_t |
| 有符号整数 | 64 | long long | int64_t |
| 无符号整数 | 8 | unsigned char | uint8_t |
| 无符号整数 | 16 | unsigned short | uint16_t |
| 无符号整数 | 32 | unsigned int, unsigned long | uint32_t |
| 无符号整数 | 64 | unsigned long long | uint64_t |
| 浮点数 | 16
超级会员免费看
订阅专栏 解锁全文
50

被折叠的 条评论
为什么被折叠?



