系统吧 专业的电脑操作系统,支持重装各种原版系统xp/win7/win8/win10 这个系统怎么样?试试系统吧系统,体验办公系统畅快愉悦感。 各种电脑系统安装过程一样,神一般的畅快!
-->
当前位置:主页 > U盘 >

arm32和64的区别

作者:杨凯珠 分类:U盘 发布时间:2023-06-11 12:00:04

最近三个月的时间,都在进行解码库的arm架构汇编优化,包括arm32位汇编优化和arm64位汇编优化。在arm32位入门之后,只要掌握了两种架构的寄存器和指令集差异之后,就可以很快上手编写arm64位汇编代码了。下面就arm32位和arm64位架构、寄存器和指令差异进行分析总结。 架构差异 ARM是RISC(精简指令集)处理器,不同于x86指令集(CISC,复杂指令集)。 Arm32位是ARMV7架构,32位的,对应处理器为Cortex-A15等; iphone5以前均是32位的; 需要注意:ARMV7-A和ARMV7-R系列支持neon指...

最近三个月的时间,都在进行解码库的arm架构汇编优化,包括arm32位汇编优化和arm64位汇编优化。在arm32位入门之后,只要掌握了两种架构的寄存器和指令集差异之后,就可以很快上手编写arm64位汇编代码了。下面就arm32位和arm64位架构、寄存器和指令差异进行分析总结。

架构差异

ARM是RISC(精简指令集)处理器,不同于x86指令集(CISC,复杂指令集)。

Arm32位是ARMV7架构,32位的,对应处理器为Cortex-A15等; iphone5以前均是32位的;

需要注意:ARMV7-A和ARMV7-R系列支持neon指令集,ARMv7-M系列不支持neon指令集。

ARM64位采用ARMv8架构,64位操作长度,对应处理器有Cortex-A53、Cortex-A57、Cortex-A73、iphones的A7和A8等,苹果手机从iphone 5s开始使用64位的处理器。

寄存器差异

4.1 ARM通用寄存器

ARM32位通用寄存器和ARM64位通用寄存器差异详见:ARM寄存器及其说明

4.2 NEON寄存器

ARM32位neon寄存器和ARM64位neon寄存器差异:

32位下 NEON寄存器:

包括:

32个S寄存器,S0~S31,(单字,32bit)

32个D寄存器,D0~D31,(双字,64bit)

16个Q寄存器,Q0~Q15,(四字,128bit)

使用注意:

1、NEON寄存器将每个寄存器均视为一个向量,该向量又包含1,2,4,8或16个大小和类型均相同的元素。也可以将各个元素当做标量访问。

NEON的这三种寄存器是重叠的,物理地址是一样的。

2、NEON寄存器在使用时,如果用到d8~d15寄存器,需要先入栈保存vpush {d8-d15},使用完之后要出栈vpop {d8-d15}。

64位下NEON寄存器:

包括:

32个B寄存器(B0~B31),8bit

32个H寄存器(H0~H31),半字 16bit

32个S寄存器(S0~S31) ,单字 32bit

32个D寄存器(D0~D31),双字 64bit

32个Q寄存器(V0~V31),四字 128bit

不同位数下寄存器之间的关系如下图所示:

其中S0是D0的低半部分,D0是V0的低半部分 。

arm32和64的区别

xp 更多>>
win7 更多>>
win8 更多>>
win10 更多>>
U盘 更多>>
电脑技术 更多>>
网站地图 | 豫ICP备2021035069号-4 | 友情链接qq:191064436
系统吧

版权所有 © 2012-2023 系统吧 免责声明:本站资源均收集于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时删除相应资源。